Ich habe eine Tabelle mit Bildern und Kontrollkästchen. Ich habe versucht, eine Senden-Schaltfläche beim Ändern des Kontrollkästchens in der Tabelle zu aktivieren. Mein Tisch ist wie folgt,
<form action="/slideShowPage" method="GET">
<table id="imgTable" class="table">
{{#images}}
<tr>
<td><a href="/deleteImage?imageID={{imgURL}}" class="btn btn-danger" title="Clear All">Remove</a><label value={{imgURL}}>{{imgURL}}</label></td>
<td><img src={{imgURL}} style="width:100px;height:100px"></td>
<td><input id={{imgURL}} type="checkbox" name="image" value={{imgURL}}/><br></td>
</tr>
{{/images}}
</table>
<br>
{{#msg}}
<div class="alert alert-info">{{msg}}</div>
{{/msg}}
<a href="/" class="btn btn-success pull-right" title="Add More">Add more</a>
<input type="submit" value="Create Slide Show" class="btn btn-success pull-left" disabled/>
</form>
Ich habe versucht, die Schaltfläche mit dem folgenden Javascript zu aktivieren,
<script type="text/javascript">
var checkboxes = $("input[type="checkbox"]"),
submitButt = $("input[type="submit"]");
checkboxes.click(function () {
submitButt.attr("disabled", !checkboxes.is(":checked"));
});
</script>
Ich habe dieses Javascript von JSFidel. Aber es "funktioniert nicht. Auch ich benutze NodeJS und meine jquery Version ist jquery-2.0.3
. Kann mir jemand helfen, das zu beheben?
Danke im Voraus!
Antworten:
0 für die Antwort № 1Setzen Sie die Eigenschaft disabled des Elements auf false
submitButt.disabled = false; Wenn Sie jQuery verwenden, wäre das Äquivalent:
$ ("input [type =" submit "]"). prop ("disabled", false);
oder Geben Sie dem Eingabeelement eine ID oder Klasse wie "inputDisabled". $ (". inputDisabled"). removeAttr ("disabled");
0 für die Antwort № 2
Ich habe die Lösung dafür gefunden.
<script type="text/javascript">
$( document ).ready(function() {
console.log("Cheeeee 1");
var checkboxes = $("input[type="checkbox"]"),
submitButt = $("input[type="submit"]");
checkboxes.change(function() {
console.log("Cheeeee");
submitButt.attr("disabled", !checkboxes.is(":checked"));
});
});
</script>
Weil die Seite nicht sicher manipuliert werden kann, bis das Dokument "fertig" ist. JQuery erkennt diesen Bereitschaftszustand für Sie. Code enthalten $( document ).ready()
wird erst ausgeführt, wenn die Seite Document Object Model (DOM) für die Ausführung von JavaScript-Code bereit ist.
0 für die Antwort № 3
Versuche dies.
Binden Sie an das Änderungsereignis anstelle des Klickereignisses.
var checkboxes = $("input[type="checkbox"]"),submitButt = $("input[type="submit"]");
checkboxes.change(function() {
submitButt.attr("disabled", !checkboxes.is(":checked"));
});