1

ユーザーが送信ボタンをクリックしたときにユーザー入力を検証したいのですが、うまくいきません。

jQuery

$(document).ready(function() {
   function validateForm() {
      if ($('#u').value() == '') 
      {
         alert("no value found");
         return false;
      }

  });

});

HTML

<form name="myForm" action="main.php" onsubmit="return validateForm()" method="post">
   <input type="text" id="u" />
   <input type="submit" value="submit" />
</form>
4

4 に答える 4

2

あなたのコードには多くの問題があります。

  • 値は使用できますが削除されません。また、DOM オブジェクトで使用できる jQuery オブジェクトで値を使用することはできません。functionattributeval()

  • 入力フィールドに id を割り当てるのを忘れている可能性があります。

  • ステートメント<input type="text">は b4 である必要があります<input id="u" type="text">

  • 関数 validateForm の中括弧を閉じた後に余分な括弧があり、入力タグを閉じていません。

ライブデモ

if ($('#u').val() == '') 
{
   alert("no value found");
   return false;
}

ネイティブ JavaScript メソッド getElementById を使用して DOM 要素 (オブジェクト) を取得し、そのオブジェクトの value プロパティを使用できます。

ライブデモ

if (document.getElementById('u').value == '') 
{
     alert("no value found");
     return false;
}
于 2013-07-30T03:25:03.907 に答える
0

試す

if ($('#u').value() == '') 
{
    alert("no value found");
    return false;
} else {
    $('form[name="myForm"]').submit();
}
于 2013-07-30T03:26:57.760 に答える
0

ところで、私はあなたのコードにぎこちないところを見つけました。この行に注目しましょう:

  ......
   if ($('#u').value() == '') 
   {
     alert("no value found");
     return false;
   }

});

});

の 2 つがあります});。どちら$(document)if()?? ただし、条件付きで閉じるためif()だけに、そのように入力しないでください。}そして make afunction ...の場合、 function を の中に入れる必要はありません$(document).ready。スタンドアロンできます。例えば ​​:

function validateForm() {

   if ($('#u').val() == '') 
   {
      alert("no value found");
      return false;
   }

}

そして、 .value() を .val() に変更する必要があります

結果はこちらをご覧ください。お役に立てれば

于 2013-07-30T03:54:36.320 に答える
0

@Barmarが提案したように、欠落しているIDについて既存のコードを確認してください。に を追加し、id="u"特に<input type="text">他の人が後でコードを読むことができるように、あいまいな ID 名の選択にも注意してください。

元の質問を編集したので、私の回答がどのように関連しているかを確認するのは難しいです

于 2013-07-30T03:30:13.790 に答える