ハイパーリンクの 1 つを作成するにはどうすればよいですか。クリックすると、「よろしいですか?」というポップアップが表示されます。
<INPUT TYPE="Button" NAME="confirm" VALUE="???" onClick="message()">
すでに message() 関数が機能しています。ハイパーリンクの入力タイプが何であるかを知る必要があるだけです。
ハイパーリンクの 1 つを作成するにはどうすればよいですか。クリックすると、「よろしいですか?」というポップアップが表示されます。
<INPUT TYPE="Button" NAME="confirm" VALUE="???" onClick="message()">
すでに message() 関数が機能しています。ハイパーリンクの入力タイプが何であるかを知る必要があるだけです。
<a href="http://somewhere_else" onclick="return confirm()">
ユーザーがリンクをクリックすると、confirm
関数が呼び出されます。確認関数が戻るfalse
と、リンクトラバーサルはキャンセルされ、trueが返されると、リンクがトラバースされます。
<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 でテスト済み
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でのみテストされています。
[編集]コメントでフォローされた提案...:-)
<a href="#" onclick="message(); return false;">???</a>
この回答は、クリックでユーザーを別のページに移動する必要がない場合にのみ問題ありません。