背景:我正在处理的网站顶部有一个搜索栏。用户输入产品的零件代码,网站返回有关该产品的信息。
所以,我有一个基本的搜索栏,从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>
答案 0 :(得分:3)
看看变化 - 我认为你的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>