你不應該,在一般:
- 混合你的JavaScript到您的HTML標記(你應該以編程方式附加邏輯處理程序),
- (ab)僅對JavaScript使用錨元素(你應該使用一個按鈕,或將
onclick
處理程序的IMG直接),也不
- 發生在一個單一的元素的點擊表單的提交處理器(應該改爲處理
onsubmit
事件的形式)。
我不知道你的情況的細節,但我會做到這一點在你的HTML文件:
<!-- 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>
...這在你的submit.js
文件:
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;
};
};
(嗯,其實,我個人會用jQuery來處理JS的東西:)
$(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 2010-11-22 13:33:08
@Sarfraz:你總是可以禁用鏈接... – 2010-11-22 13:34:20