0

JSP に以下の形式のコードがあります。

<a href="javascript:submit()">sumbit</a>

リンクを押すと、フォームが送信されます。ただし、デフォルトの a href 動作をブロックする必要があり、submit 関数を呼び出すだけで済みます。submit 関数はフォームを送信します

jQuery で HREF のクリック イベントをキャッチしてから、e.preventDefault(). 同じように、HREF 属性を取得してeval()から、関数を起動しました。

ただし、デフォルトの HREF 機能を停止することはできず、新しいページは常にブラウザーのキャッシュに保存されます。

また、手動でコードを変更する自由もありません。提案してください。

アップデート

コードの問題は次のとおりです。

<a href="javscript:submit()">submit</a>

JSP で使用されている HREF の例の 1 つです。上記の形式を使用して、さまざまなタイプの関数が呼び出される場合があります。

以下のjQueryを使用しました:

$("a[href^=\'javascript\']").live('click',function(e)
{
     e.preventdefault();
     eval($(this).attr('href'));
     return false;
});

ただし、これはデフォルトの HREF 機能を停止しません。私は何が欠けていますか?

4

2 に答える 2

1

質問で述べたように、マークアップを手動で変更することはできません。

だから、これはあなたが本当に望んでいることだと思います。

<form id='myform' action=''>
</form>
<a href="javascript:submit()">submit</a>​
​

JS:

 function submit() {
   document.getElementById('myform').submit();
 }


 jQuery(function() {
    $('a').click(function() {
         var href = $(this).attr('href').replace('javascript:','');
         console.log(href); 
         alert('hi');
         eval(href);        
         return false;
     });
 });​

</ p>

デモ

アップデート:

eval(href)を使用して、回避することができますwindow[href]();

このデモを見る

于 2012-11-25T06:39:29.497 に答える
-1

試す:

<a href="#" onclick="submit()">sumbit</a>

于 2012-11-25T06:23:05.780 に答える