-7

必須フィールドの検証にJavaScriptを使用しています。アラートボックスを使用しました。アラートボックスで[OK]をクリックした後、コントロールはサーバー側のコードに移動してクリックを保存します。

function IsFieldEmpty() {
    var txtAgent_Name = document.getElementById("<%=txtAgent_Name.ClientID %>");

    if (txtAgent_Name.value == "") {
        alert('Please Enter Agent Name');
        txtAgent_Name.focus();
        return false;
    }
}
4

1 に答える 1

1

問題が、検証エラーの通知を表示した後も一部のイベントハンドラーがデータを送信していることである場合は、イベントのそれ以上の処理を防ぐために、表示後alertにイベントハンドラー関数を返す必要があります。falsealert

@Bergiが彼のコメントで指摘しているように、JQueryまたは別のフレームワークを使用している場合は、stopPropagation()または同等のものを使用する必要があるかもしれません。見る

アップデート

return false投稿されたコードを見て、関数内で行われていることに注意することが重要かもしれませんIsFieldEmpty。これは、falseがの戻り値であることを意味しますIsFieldEmpty。これと同様の方法でデータを送信する場合は、次の点に注意してください。

<input type="submit" onclick="IsFieldEmpty()">

IsFieldEmptyfalseを返しますが、イベントハンドラーは返しません。その場合は、次のように変更する必要があります。

<input type="submit" onclick="return IsFieldEmpty()">

検証に合格するとIsFieldEmpty戻ります。true

function IsFieldEmpty() {
    var txtAgent_Name = document.getElementById("<%=txtAgent_Name.ClientID %>");

    if (txtAgent_Name.value == "") {
        alert('Please Enter Agent Name');
        txtAgent_Name.focus();
        return false;
    }
    return true;
}
于 2012-09-18T13:13:03.023 に答える