0

重複の可能性:
1回の実行後にjquery関数を停止します

私はこの機能を持っています:

function Nextthing (){

$("#i").hide();
$('.table').eq(1)
           .find('tbody tr')
           .eq(2)
           .after('<tr><td colspan=10><iframe class="iframe"  src="/msg.html?msgId='+$('.table')
           .eq(1)
           .find('tbody tr')
           .eq(2)
           .find('td a')
           .eq(0)
           .text()+'&constant=1"></iframe></td></tr>');
}

}

送信ボタンで呼び出されますが、ボタンをクリックすると、それ#iがiframeであることを非表示にし、関数の2番目のステートメントが示すように新しいIフレームを挿入します。

しかし、送信アクションを通過しないので、効果以外は何も起こらないようで、それだけです。

送信アクションに合格できるように、削除してください。

4

2 に答える 2

0

これはあなたの送信ハンドラーだと思います。その場合は、戻ってきてから問題が発生している可能性がありますundefined。すべての JS 関数は値を返します。値が明示的に定義されていない場合、返される値はfalse であるため、イベントトリガーをキャンセルする効果を持つイベントハンドラーundefinedからundefinedfalse が返されます。つまり、送信がキャンセルされます。

その場合は、単にreturn true;関数の最後に a を挿入します

于 2012-10-01T19:08:12.900 に答える
0

非表示の 内のフォームiframe(つまり、スタイルが のフォームdisplay: none) は送信されません。これはフィッシングを防ぐためのセキュリティ対策だと思います。ただし、設定することはでき、visibility: hidden; height: 0px; width: 0px;動作するはずです。

編集:

したがって、問題は実際には$('#i').hide();ではなく、実際には に変更されたとき$('#i').remove();です。iframeその場合、おそらくそれ自体で実行されるコードを変更したいと思うでしょう。HTML を発行できる何らかのサーバー側言語を想定すると、フォームの送信を処理した後、次のような出力が得られます。

<script>
if (parent && parent.Nextthing) {
    parent.Nextthing();
}
</script>

Nextthingこれは、質問に表示されている機能がグローバルにスコープされており、参照のあるページに含まれていることを前提としていiframeます。

于 2012-10-01T19:16:34.733 に答える