18

alertこれは、テキストボックスが空のままの場合にメッセージを発生させるはずだった私のコードです:

function a(id)
{
    var n=document.getElementById(id).value;
    if (n.length < 1)
    {
        window.alert("Field is blank");
        return false;
    }
}

私が得ているバグは、フィールドがonChange初めて検証されないことです。しかし、テキスト ボックスにデータを入力して消去すると、 がOnChange起動し、alertメッセージが表示されるようになりました。このバグを修正するにはどうすればよいですか?

4

3 に答える 3

29

onchangeテキストボックスの値が以前の値と比較して変更された場合にのみ機能するため、状態が変更されていないため、初めて機能しません。

そのため、イベントを使用するonblurか、フォームを送信することをお勧めします。

function checkTextField(field) {
  document.getElementById("error").innerText =
    (field.value === "") ? "Field is empty." : "Field is filled.";
}
<input type="text" onblur="checkTextField(this);" />
<p id="error"></p>

(または古いライブデモ。)

于 2013-02-02T06:22:49.057 に答える
3

検証は、イベントがフォームを送信することを想定する前に行う必要があります。

とにかく、onchangeでこれが必要な場合は、ここにコードがあります。

function valid(id)
{
    var textVal=document.getElementById(id).value;
    if (!textVal.match(/\S/)) 
    {
        alert("Field is blank");
        return false;
    } 
    else 
    {
        return true;
    }
 }
于 2013-02-02T06:12:57.843 に答える