表单提交 - 预验证会关闭IE

时间:2011-09-06 12:36:44

标签: php mysql html

背景:我正在处理的网站顶部有一个搜索栏。用户输入产品的零件代码,网站返回有关该产品的信息。

所以,我有一个基本的搜索栏,从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>

1 个答案:

答案 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>