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. 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>
    

フォームが送信されるたびに検証メソッドに移動し、検証に合格した後にのみフォームが送信されます

于 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 に答える