Sie sollten in der Regel nicht:
- sie JavaScript in Ihren HTML-Markup-Mix (Sie sollte Ihre Logikhandler programmatisch anbinden),
- (ab) verwenden Sie Anchor-Elemente nur für JavaScript (Sie sollten Vorlage Handler einen Knopf, oder setzen Sie den
onclick
Handler auf dem img direkt) noch
- Stelle eines Formulars auf dem Klick eines einzelnen Elements (Sie sollten stattdessen übernehmen die
onsubmit
-Ereignis des Formulars) verwenden.
ich weiß nicht, die Besonderheiten Ihrer Situation, aber ich würde diese Datei in Ihrem HTML tun:
<!-- 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>
... und dies in Ihrer submit.js
Datei:
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;
};
};
(Nun, eigentlich würde ich persönlich jQuery für die Handhabung der JS Seite der Dinge verwenden :)
$(function(){
$('#accept-box').click(function(){
$('#submitter').attr('disabled',!this.checked);
});
$('#myform').submit(function(){
return $('#accept-box').attr('checked');
});
});
CSS können Sie die Taste rund um das Bild stylen weg, wenn man so will:
#submitter { border:0; padding:0 }
Sie können den Hyperlink nicht deaktivieren, obwohl Sie es verstecken. – Sarfraz
@Sarfraz: Sie können immer einen Link deaktivieren ... –