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

ハンドラー関数をクリック イベントに渡す必要があります。また、一度フォームをjquery化してから使用してください。同じ要素の 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();

これは 1 年前に可能だったことを覚えていますが、新しいブラウザーではセキュリティ上の理由からこれが制限されていると思います。

于 2012-07-30T17:10:09.443 に答える