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

如果未选择任何选项,则选择元素的selectedIndex将为-1。建议始终将一个选项设置为selected,这样您就知道默认选择的选项是什么(如果您不这样做,用户代理可能会默认选择第一个选项)。

所以测试:

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

仅当第一个选项具有 selected 属性时才为真。所以要么测试 -1 要么默认选择第一个选项,例如

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