あなたは、いけない、一般的には:
- は(あなたのHTMLマークアップにあなたをあなたのJavaScriptをミックスロジックハンドラをプログラムでアタッチする必要があります)、
- (ab)JavaScriptのアンカー要素のみを使用する(あなたは、単一の要素(あなたの代わりに、フォームの
onsubmit
イベントを処理する必要があります)のクリックでフォームの提出ハンドラをボタンを使用するか、直接IMG上onclick
ハンドラを置く)、また
- 配置する必要があります。
window.onload = function(){
var accept = document.getElementById('accept-box');
var submit = document.getElementById('submitter');
accept.onclick=function(){
submit.disabled = !accept.checked;
};
document.getElementById('myform').onsubmit = function(){
// Prevent form submission by any means unless
// the accept button is checked.
return accept.checked;
};
};
:あなたのsubmit.js
ファイルで <!-- Put a valid doctype here -->
<html><head>
<script type="text/javascript" src="submit.js"></script>
</head><body>
<form id="myform" ...>
<label>
<input type="checkbox" name="accept" id="accept-box" />
I accept
</label>
<button type="submit" id="submitter" disabled="disabled">
<img src="..." />
</button>
</form>
</body></html>
...と、この:
私はあなたの状況の詳細を知らないが、私はあなたのHTMLファイルでこれを行うだろう
(実際、私は物事のJS側を処理するために個人的にjQueryを使用します:)
$(function(){
$('#accept-box').click(function(){
$('#submitter').attr('disabled',!this.checked);
});
$('#myform').submit(function(){
return $('#accept-box').attr('checked');
});
});
あなたが好きなら、画像の周囲のボタンを離しスタイルをCSSを使用することができます。
#submitter { border:0; padding:0 }
ハイパーリンクを無効にすることはできませんあなたはそれを隠すことができますが。 – Sarfraz
@Sarfraz:いつでもリンクを無効にすることができます... –