即使提交按钮被禁用,表单也会被提交

时间:2013-11-12 09:00:53

标签: forms submit form-submit disabled-input

我有一个表单,我已禁用提交按钮。如果我选择下拉列表的值,则此按钮仅会启用。但我在IE和Chrome中遇到了一个奇怪的问题:如果我在文本框中按Enter键,表单就会被提交(即使我的提交按钮被禁用)。

这是我的代码:

<!DOCTYPE html>
<html>
<head>
<title>Form Submit</title>

</head>

<body>
    <div>
        <form method="post" action="/distributor-locations-global/index.html?qa=Y" >
            <input type="hidden" value="" id="filter-url" name="filter_url">
            <input type="hidden" value="SKF Distributor" id="filter_type" name="filter_type">
            <input type="hidden" value="Y" id="filter_type" name="identifier">  
            <div class="field country-field full">
                <select id="country" name="country" class="custom replaced" title="Sweden">
                    <option value="">Select location *</option>
                     <option value="1042">Albania</option>
                      <option value="1043">Algeria</option>
                      <option value="1064">Benin</option>
                </select>
            </div>      

            <div class="field zip-field full">
                <input type="text"  id="zip" name="zip" class="ui-disabled styled-text" >
            </div>

            <div class="button"><input type="submit" disabled="disabled" value="Show results" class="button styled-button"></div>

        </form>
    </div>
</body>

</html>

2 个答案:

答案 0 :(得分:1)

提交按钮不仅是提交表单的方式,如果要设置表单提交的一些限制,你必须使用像这样的js函数

  1. add onsubmit =“return validate();”在您的表单标签中 例如<form method="post" action="/distributor-locations-global/index.html?qa=Y" onsubmit="return validate();">
  2. 添加适当的javascript函数

    <script>
    function validate() 
    {
        if (check_what_you_need_here==true) {
            return true;
        }
    
        return false;
    }
    </script>
    
  3. 现在每次表单都将提交它将转到验证方法,并且只有在通过验证表后才会发送

答案 1 :(得分:0)

您可以使用标题中的以下代码禁用表单上的回车键:

 <script type="text/javascript"> 

    function stopRKey(evt) { 
      var evt = (evt) ? evt : ((event) ? event : null); 
      var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null); 
      if ((evt.keyCode == 13) && (node.type=="text"))  {return false;} 
    } 

    document.onkeypress = stopRKey; 

    </script>