如果我自己创建点击事件及其处理程序,那么在正确的位置执行 event.preventdefault() 对我来说是没有问题的。但是如果有一个元素已经注册了点击事件和相应的处理程序,我想在某种情况下停用它的进一步工作(例如提交)。
这是一个例子:
页面上有一个提交按钮,带有注册的点击元素(可能大约有一百个验证例程..)和一个具有一定值的变量(al)。成为此变量的瞬时值 = 5(这不是所需的特定情况 -> 值 = 3)。
HTML
// other form elements
<input type="submit" name="next" value="go"/>
带有 jQuery 的 JavaScript
var al = 3;
$("input[type='submit'][name='next']").click(
function(event) {
if (al != 3) {
alert (al+': Not OK');
event.preventDefault();
} else {
alert ('OK');
}
}
);
在这个例子中,我无法阻止表单被提交。我的错误是什么?
编辑: event.preventDefault 不是问题,崇高(我的编辑)无论如何都会纠正它。
----- 我想简化问题 ---------
那是一个 SubmitButon (这次来自原始上下文中的 yii):
看法
echo CHtml::submitButton(
Yii::t ('Somethin', 'next'),
array(
'name' => 'next',
'onclick' => "checkDetails()"
));
JS
checkDetails() {
PREVENT_SUBMITTING
}
PREVENT_SUBMITTING 应该是什么样子?在这种情况下,什么会阻止提交,没有任何条件?