首页 > 解决方案 > onClick 中带有正斜杠的 HTML 提交按钮

问题描述

我有一个非常简单的表单,它在输入按钮 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" />

该按钮工作正常并传递“家”的位置值

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

标签: javascripthtmlinputonclicksubmit

解决方案


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

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

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

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

javascript 也是一样,你需要使用一些东西让代码知道你想使用你的 '/' 作为一个简单的字符。检查此链接以了解如何在 JS 中转义:JS 转义字符

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


推荐阅读