背景:我正在开发的网站顶部有一个搜索栏。用户输入产品的零件代码,网站就会返回有关该产品的信息。
因此,我有一个基本的搜索栏,它将 HTML 表单中的参数发布到 PHP 脚本中,然后在 MySQL 服务器上进行查找以获取产品。
问题是因为某些部分代码有“#”字符,我必须使用Javascript插入转义字符,否则我只能得到PHP脚本中的部分代码。
示例 - 123#ABC 将被读取为 123。
我在表单中使用了一个隐藏值,该值由文本框值填充,并由 Javascript 中的 escape() 函数修改。
这是我目前的代码,它适用于除 IE 之外的所有浏览器。
任何帮助将不胜感激:)
<script language="jscript">
function changeTextBox()
{
hiddenSearch.value = escape(txtSearch.value);
formSearch.submit;
}
</script>
<form id="formSearch" name="Search" action="?page=search" method="post">
Search by <u>Part Code</u> or <u>Description</u>
<input id="txtSearch" type="text" size="35">
<input id="hiddenSearch" name="Search" type="hidden">
<input name="Submit" onclick='jscript:changeTextBox();' type="submit" value="Submit">
</form>
最佳答案
看看变化——我认为你的 JavaScript 有问题。
<script language="jscript">
function changeTextBox()
{
document.getElementById("hiddenSearch").value = escape(document.getElementById("txtSearch").value);
this.submit();
}
</script>
<form id="formSearch" name="Search" action="?page=search" method="post" onsubmit='changeText()'>
Search by <u>Part Code</u> or <u>Description</u>
<input id="txtSearch" type="text" size="35">
<input id="hiddenSearch" name="Search" type="hidden">
<input name="Submit" type="submit" value="Submit">
</form>
关于php - 表单提交 - 预验证使 IE 失效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7320043/