如果onclick函数返回false,则停止链接操作

时间:2013-10-03 14:54:25

标签: javascript html

这是一个简单检查表单元素上是否已选中单选按钮的函数。

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,我希望禁用该链接。

2 个答案:

答案 0 :(得分:7)

你几乎得到它,你需要在函数中添加'return'以及:

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

也是一个小小的提示,添加一个休息时间:

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/(在示例中添加了一些单选按钮)

答案 1 :(得分:3)

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

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