我正在尝试检查div元素的html是否包含“您输入的代码不正确”。但是,我需要检查点击发生后是否为真。以下是我到目前为止的情况:
if($('.wpcf7-form-control').click()) {
if($('.wpcf7-not-valid-tip-no-ajax').html() == 'Your entered code is incorrect.'){
$('.sidebar-demo').delay(800).click();
}
else{
$('#formalert').delay(800).click();
}
}
这会创建无限循环的点击,我很确定我正在形成错误的声明但是卡住了。想法?
答案 0 :(得分:1)
您必须将处理函数传递给click事件。此外,jquery-ify表单一次然后使用它。查询DOM以获取相同的元素是昂贵且多余的。
- Edits: Use "===" it tests for value and type, does not use coercion.
- Edits: Declare your variables with only one var statement.
- Edits: This is purely a stylistic preference but I use a "$" when I jQuery select an element to remind myself that it has been jQueryified.
var $wpcformControl = $('.wpcf7-form-control'),
$wpcf7Ajax = $('.wpcf7-not-valid-tip-no-ajax'),
$sideBarDemo = $('.sidebar-demo'),
$formAlert = $('#formalert');
$wpcformControl.click(function() {
if($wpcf7Ajax.val() === 'Your entered code is incorrect.') {
$sideBarDemo.delay(800).click();
}
else{
$formAlert.delay(800).click();
}
});
答案 1 :(得分:1)
尝试:
$('.wpcf7-form-control').click(function() {
if($('.wpcf7-not-valid-tip-no-ajax').text() == 'Your entered code is incorrect.') {
$('.sidebar-demo').delay(800).click();
}
else{
$('#formalert').delay(800).click();
}
});
不确定您是否可以强制点击页面元素,就像您尝试在此处一样:
$('#formalert').delay(800).click();
在这里:
$('.sidebar-demo').delay(800).click();
我记得一年前这是可能的,但我认为现在更新的浏览器出于安全考虑限制了这一点。