5

这是一个简单地检查是否在表单元素上选择了单选按钮的函数。

function validate_selected(element) {
    var radios = document.getElementsByName(element);
    var formValid = false;

    var i = 0;
    while (!formValid && i < radios.length) {
      if (radios[i].checked) formValid = true;
      i++;        
    }

    if (!formValid) alert("Must select one before moving on!");
    return formValid;
}

如果函数返回 false,这是我想要禁用的链接。现在链接显示警报,但在警报之后链接将用户转发。

<a href="#m2" data-role="button" onclick="validate_selected('owner');"><p style="font-size:<?php echo $size1.'px'; ?>;">Next</p></a>

如果函数返回 false,我希望禁用链接。

4

2 回答 2

7

你几乎明白了,你还需要在函数中添加“return”:

onclick="return validate_selected('owner');"

还有一个小tips,加个break:

while (!formValid && i < radios.length) {
    if (radios[i].checked){
        formValid = true; 
        break; // No need to continue any more, we've found a selected option
    }
    i++;        
}

我已将您onclick的内联方式更改为处理事件的正确方式,并制作了一个有效的演示。只需从按钮中删除 onclick 并添加以下内容:

document.getElementById('button').onclick =function(){ validate_selected('owner'); };

http://jsfiddle.net/WX6v7/1/(在示例中添加了一些单选按钮)

于 2013-10-03T14:57:45.790 回答
3

您实际上需要函数返回return的值onclick

onclick="return validate_selected('owner');">
于 2013-10-03T14:57:37.030 回答