2017-10-28 9 views
0

私はフォームを持っていて、フォームのすべてのフィールドを入力してから送信ボタンを有効にします。 jqueryを使用してボタンを無効にした場合は、サブミットボタンのdisabled="disabled"も使用します。今、私はブラウザ上にあり、ボタンは無効になっています。ボタンを無効にする安全な方法はどれですか?

私は、右クリックして要素を検査して登録ボタンに行き、HTMLからdisabled=" disabled"を削除し、詳細を入力せずにボタンが有効になり、ボタンフォームは送信されませんでした。

私に知りたいこの問題を解決するための他の解決方法はありますか?誰でもこれを有効にして、フォームに記入することなくアクセスできます。

あなたは私を助けてくれますか?

enter image description here

(function() { 
 
    $('form > input').keyup(function() { 
 
     var empty = false; 
 
     $('form > input').each(function() { 
 
      if ($(this).val() == '') { 
 
       empty = true; 
 
      } 
 
     }); 
 
     if (empty) { 
 
      $('#register').attr('disabled', 'disabled'); 
 
     } else { 
 
      $('#register').removeAttr('disabled'); 
 
     } 
 
    }); 
 
})()
<form> 
 
    Username<br /> 
 
    <input type="text" id="user_input" name="username" /><br /> 
 
    Password<br /> 
 
    <input type="password" id="pass_input" name="password" /><br /> 
 
    Email<br /> 
 
    <input type="text" id="email" name="email" /><br />  
 
    <input type="submit" id="register" value="Register" disabled="disabled" /> 
 
</form> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>

+4

常に重要である理由であるという方法で、安全なフロントエンドを作ることは不可能ですサーバー側の検証を追加するには – user184994

+0

@ user184994、ありがとう、私はサーバー側の検証を追加することを知っている。私はそれを扱う別の方法があると思った。 –

+0

唯一の方法は、サーバー側の処理を使用することです –

答えて

2

disabledプロパティは良いのですが、その多かれ少なかれ化粧品。

JavaScript submitイベントハンドラを使用してフォームを送信しないようにする簡単な方法があります。条件が満たされていないかチェックします。そうでなければの提出をキャンセルします。

0

フォームは、単にこれにあなたの機能を変更することによって、提出防ぐことができます。

(function() { 
$('form > input').keyup(function(e) { 
    e.preventDefault(); 
    var empty = false; 
    $('form > input').each(function() { 
     if ($(this).val() == '') { 
      empty = true; 
     } 
    }); 
    if (empty) { 
     $('#register').attr('disabled', 'disabled'); 
    } else { 
     $('#register').removeAttr('disabled'); 
    } 
}); 

})()

関連する問題