javascript - 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”
解决方案
在包括 html 在内的编程语言中,符号经常被用作“特殊字符”,这意味着它们不再被视为简单字符,而是具有特定的功能。想想你在每个标签周围使用的符号(< 和 >)。
正如您在自己的代码中看到的那样,'/' 通常用于关闭现有标签(例如 )。这让您知道在 html 中“/”不是简单的正斜杠,而是一个特定的“函数”。
如果您想使用特殊字符作为字符串、变量名或其他的一部分。你需要做一些叫做逃避说字符的事情。转义意味着让代码知道您没有使用与所述字符关联的特殊功能,而是希望将字符用作普通字符。
在 html 中,您必须使用特殊代码来替换特殊字符。在此页面上查看 HTML 转义字符列表: HTML 转义字符。
javascript 也是一样,你需要使用一些东西让代码知道你想使用你的 '/' 作为一个简单的字符。检查此链接以了解如何在 JS 中转义:JS 转义字符
但是,根据经验,尽量避免使用特殊字符。正如评论中已经提到的'_'(下划线)是一个很好的选择。
推荐阅读
- wordpress - Bootstrap Carousel ACF 中继器 - 箭头不起作用
- python - 如何使用请求方法将文件下载到新创建的目录?
- snowflake-cloud-data-platform - 雪花 - 我们可以将它托管在私有云中吗?
- sql - 我盯着这个 SQL 代码看了好几个小时,看不出问题可能只是愚蠢(Microsoft Access SQL)
- maven - 创建自定义处理器 apache nifi
- angular - 仅在通过 http 请求调用图像 url 时出现 cors 错误,但除此之外所有 api 都运行良好
- r - RStudio 保存 Rmd 文件非常慢
- business-process-management - IBM BPM Coach - 当十进制视图文本字段中存在空值时立即禁用按钮
- python - 使用 selenium Python 在 excel 中查找行号
- flutter - 断言失败:第 22 行 pos 14: 'url != null': is not true