@Tetsu_Oikawa (NOBA LISH)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

event.preventDefault()について

Q&A

Closed

解決したいこと

jQueryで、event.preventDefault()の説明文で、以下のようなサンプルがありました。
image.png

太郎以外の文字を送信しようとすると、event.preventDefault()が適用されて、送信できなくなるという感じでした。
この文だと、type=submitになっているもの全てに適用されると思ったので、送信ボタンを2つ用意して、片方にid="sa"を付けて、jQuery文の最初を、
$("#sa input[type=submit]")にして、IDが#saで、input[type=submit]のものだけに適用
されるようにすることで、IDが、saの方だけにJQuery文が適用されると思ったのですが、適用されませんでした。
どうして、うまくいかないのかと、どうしたら、IDがsaのやつだけにJquery文が適用されるのか、教えて頂きたく連絡いたしました

<script>
  jQuery(function(){
      $("#sa input[type=submit]").on("click", function(event){
          if($(myname).val() !== "太郎") {
              event.preventDefault();
          };
      });
  });
</script>

</head>
<body>
<Br>
<form>
    id:myname : <input type = "text" name="myname" id="myname">
    <input type="submit" value="送信1" id="sa">
    <input type="submit" value="送信2">
</form> 
1 likes

1Answer

単純にid指定でうまくいかないでしょうか?
空白区切りでの指定で子孫セレクタになってしまっているのが原因でうまくいっていないように思われます。

AND条件にしたいのであれば、「input[type=submit]」の後に空白なしで「#sa」をつなぐことでも実装できると思います。

-$("#sa input[type=submit]").on("click", function(event){
+$("#sa").on("click", function(event){
//もしくは
+$("input[type=submit]#sa").on("click", function(event){
2Like

Comments

  1. @Tetsu_Oikawa

    Questioner

    おかげで出来ました。
    ありがとうございます。

Your answer might help someone💌