javascript - Hur man använder jQuery för att sätta värdet på ett inmatningselement genererat av ASP.NET MVC?
Jag har en inmatningstext som är denna:
<div class="editor-label">
@Html.LabelFor(model => model.EmployeeId, "Employee Number")
</div>
<div class="editor-field textBoxEmployeeNumber">
@Html.EditorFor(model => model.EmployeeId)
@Html.ValidationMessageFor(model => model.EmployeeId)
</div>
Vilket genererar följande HTML
<div class="editor-label">
<label for="EmployeeId">Employee Number</label>
</div>
<div class="editor-field textBoxEmployeeNumber">
<input class="text-box single-line" data-val="true" data-val-number="The field EmployeeId must be a number." data-val-required="The EmployeeId field is required." id="EmployeeId" name="EmployeeId" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="EmployeeId" data-valmsg-replace="true"></span>
</div>Jag vill sätta värdet på denna inmatningstext med jQuery så jag gjorde så här:
<script type="text/javascript" language="javascript">
$(function() {
$('.textBoxEmployeeNumber').val("fgg");
});
</script>
men det fungerar inte... vad är felet i min syntax?
Svar #1
Din väljare hämtar textlådans omgivande <div class='textBoxEmployeeNumber'> istället för inputen inuti den.
// Access the input inside the div with this selector:
$(function () {
$('.textBoxEmployeeNumber input').val("fgg");
});
Uppdatera efter att ha sett HTML-utdata
Om ASP.NET-koden tillförlitligt genererar HTML <input> med ett id-attribut id='EmployeeId', kan du enklare bara använda:
$(function () {
$('#EmployeeId').val("fgg");
});
Om detta misslyckas, behöver du kontrollera i din webbläsares felkonsol att du inte har andra skriptfel som orsakar att detta misslyckas. Det första exemplet ovan fungerar korrekt i denna demonstration.
Svar #2
Med jQuery kan vi använda följande kod:
Välj efter inmatningsnamn:
$('input[name="textboxname"]').val('some value')
Välj efter inmatningsklass:
$('input[type=text].textboxclass').val('some value')
Välj efter inmatnings-ID:
$('#textboxid').val('some value')
Svar #3
$(document).ready(function () {
$('#EmployeeId').val("fgg");
//Or
$('.textBoxEmployeeNumber > input').val("fgg");
//Or
$('.textBoxEmployeeNumber').find('input').val("fgg");
});
