0

我有一个禁用提交按钮的表单。仅当我选择下拉列表的值时,此按钮才会启用。但是我在 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>
4

2 回答 2

1

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

  1. 添加 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>
    

现在每次表单将要提交时,它都会去验证方法,只有在它通过验证后才会发送表单

于 2013-11-12T09:15:30.630 回答
0

您可以通过在标题中使用以下代码来禁用表单上的 enter 键:

 <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>
于 2013-11-12T09:08:48.540 回答