0

我正在尝试检查 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();
    }
}

这会产生无限循环的点击,我很确定我错误地形成了语句,但被卡住了。想法?

4

2 回答 2

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();
     }
 });
于 2012-07-30T17:09:22.367 回答
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();

我记得一年前这是可能的,但我认为较新的浏览器现在出于安全原因限制了这一点。

于 2012-07-30T17:10:09.443 回答