HTML onClick 中带有正斜杠的提交按钮

HTML submit button with forward slash in the onClick

我有一个非常简单的表单,它在输入按钮 onClick 部分使用正斜杠。这是我们使用的应用程序的内置表单。该应用程序使用 IE 处理表单。

<BODY onLoad=setFocus(this)><FORM NAME=fMU METHOD=GET ACTION="http://HammerHead/MU">
<TABLE>
    <input type="hidden" name="Beat/Sta" value="">
    <tr>
        <td COLSPAN=2>
            <input type=SUBMIT onclick="this.form.Beat/Sta.value='B01'" value="BF1" />
        </td>
        <td></td>
    </tr>
    <TR>
        <TD><INPUT TYPE=RESET VALUE="Clear" /></TD>
        <td></td>
        <td></td>
    </TR>
</TABLE>

在表单中使用 "Beat/Sta" 值时,它不会传递 "B01" 值。因为“/”。我收到脚本语法错误代码 0.

我有另一个按钮在一个单独的表单中,它工作得很好,但看起来像下面这样,在 onClick 中没有“/”:

<input type=SUBMIT onclick="this.form.Location.value='home'" value="Home" />

该按钮工作正常并传递 "home"

的位置值

我尝试使用引号、双引号、多个正斜杠等...来尝试确保将 / 传递给函数,但似乎无法识别 "Beat/Sta" 值。我可以使用引号解决脚本错误,但它仍然不会将 B01 值传递给 "Beat/Sta"

在包括html在内的编程语言中,符号通常被用作"special characters",这意味着它们不再被视为简单的字符,而是具有特定的功能。 想一想您在每个标签周围使用的符号(< 和 >)。

正如您在自己的代码中看到的那样,“/”通常用于关闭现有标签(例如 )。这让您知道 html 中的 '/' 不是简单的正斜杠而是特定的 'function'.

如果你想使用特殊字符作为字符串的一部分,变量名或其他。你需要做一些叫做escape表示的字符。转义意味着让代码知道您没有使用与所述字符关联的特殊功能,而是想将该字符用作普通字符。

在html中您必须使用特殊代码来替换特殊字符。 在此页面上查看 HTML 转义字符列表: HTML escape characters.

与 javascript 相同,您需要使用一些东西让代码知道您想要将“/”用作简单字符。检查这个 link 如何在 JS 中转义:JS escape character

但是,根据经验,尽量避免使用特殊字符。正如评论中已经提到的,“_”(下划线)是一个不错的选择。

您可以使用

document.getElementsByName('Beat/Sta')[0].value='B01'

您的整个代码将是:

<BODY onLoad=setFocus(this)><FORM NAME=fMU METHOD=GET ACTION="http://HammerHead/MU">
<TABLE>
<input type="hidden" name="Beat/Sta" value="">
<tr>
<td COLSPAN=2>
<input type=SUBMIT onclick="document.getElementsByName('Beat/Sta')[0].value='B01'" value="BF1" />
</td>
<td></td>
</tr>
<TR>
<TD><INPUT TYPE=RESET VALUE="Clear" /></TD>
<td></td>
<td></td>
</TR>
</TABLE>

但如果避免在名称和标识符中使用特殊字符会更好