10

ハイパーリンクの 1 つを作成するにはどうすればよいですか。クリックすると、「よろしいですか?」というポップアップが表示されます。

<INPUT TYPE="Button" NAME="confirm" VALUE="???" onClick="message()">

すでに message() 関数が機能しています。ハイパーリンクの入力タイプが何であるかを知る必要があるだけです。

4

4 に答える 4

23
<a href="http://somewhere_else" onclick="return confirm()">

ユーザーがリンクをクリックすると、confirm関数が呼び出されます。確認関数が戻るfalseと、リンクトラバーサルはキャンセルされ、trueが返されると、リンクがトラバースされます。

于 2008-11-16T09:07:51.793 に答える
15
<a href="http://something.com" onclick="return confirmAction()">try to click, I dare you</a>

関数で

function confirmAction(){
      var confirmed = confirm("Are you sure? This will remove this entry forever.");
      return confirmed;
}

(確認をすぐに返すこともできます。読みやすくするために分けています)

FF、Chrome、IE でテスト済み

于 2009-06-11T15:35:27.873 に答える
2

Nahomが言ったように、私が直接hrefの部分に電話をかけることを除いてjavascript:message()(その場合はonclikは必要ありません)。

注:JavaScript呼び出しをonClickに残すことには、利点があります。href属性に、ユーザーがJavaScriptを有効にしていない場合に移動するURLを指定できます。そうすれば、JSがあれば、コードが実行されます。そうでない場合は、それを有効にするように指示された場所に移動します(おそらく)。

これで、messageルーチンは質問をするだけでなく、答えも使用する必要があります。肯定的な場合は、フォームでsubmit()を呼び出してフォームを投稿する必要があります。thisフォームのフェッチを容易にするために、呼び出しを渡すことができます。

個人的には、プロセスを実行するための単純なリンクではなく、ボタン(表示する入力タグ)を使用します。これは、ユーザーにとってより馴染みのあるパラダイムを使用します。

[編集]私は自分の答えを確認することを好むので、簡単なテストを書きました。

<script type="text/javascript" language="JavaScript">
function AskAndSubmit(t)
{
  var answer = confirm("Are you sure you want to do this?");
  if (answer)
  {
    t.form.submit();
  }
}
</script>

<form action="Tests/Test.html" method="GET" name="subscriberAddForm">
<input type="hidden" name="locationId" value="2721"/>
<input type="text" name="text" value="3.1415926535897732384"/>
<input type="button" name="Confirm" value="Submit this form" onclick="AskAndSubmit(this)"/>
</form>

はい、送信はここでページをリロードするだけです...FF3でのみテストされています。

[編集]コメントでフォローされた提案...:-)

于 2008-11-16T09:02:22.067 に答える
0
<a href="#" onclick="message(); return false;">???</a>

この回答は、クリックでユーザーを別のページに移動する必要がない場合にのみ問題ありません。

于 2008-11-16T18:43:11.817 に答える