1

ユーザーが値を選択したかどうかを確認し、値が選択されていない場合はメッセージをポップアップ表示するために、JS 内に検証ブロックを書き込もうとしています。

function validate(form) {
    var success = true;
    var message = "";

    if (form.dropdown.selectedIndex ==  0 )  {  
        form.save.disabled=true;

        if (0 < message.length) {
            message += "\n"; 
        }
        message += "dropdown  value should be selected.";
    }

    if (0 < message.length) {
        alert(message);
        success = false;
    }

    return success;
}

[保存] ボタンをクリックすると、この関数が呼び出されます。ログにエラーが表示されません。ここで私が間違っていることを誰かに教えてもらえますか? または、保存を許可する前にユーザーが値を選択したかどうかを検証する正しい方法を教えてください。

ありがとう!

4

1 に答える 1

3

オプションが選択されていない場合、select 要素のselectedIndexは になります-1。1 つのオプションを常にselectedに設定することをお勧めします。これにより、デフォルトで選択されたオプションが何であるかがわかります (そうしないと、ユーザー エージェントがデフォルトで最初のオプションを選択する場合があります)。

だからテスト:

if (form.dropdown.selectedIndex ==  0 )  {  

最初のオプションに selected 属性がある場合にのみ true になります。したがって、-1 に対してテストするか、デフォルトで選択されている最初のオプションを作成します。

<select name="dropdown" ...>
  <option selected value="default">Please select an option
  ...
</select>
于 2012-09-20T22:57:29.230 に答える