Cách đặt giá trị của văn bản đầu vào bằng jQuery


350

Tôi có một văn bản đầu vào là:

<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>

Sản xuất nào sau 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>

Tôi muốn đặt giá trị của văn bản đầu vào này bằng jquery vì vậy tôi đã làm điều này:

<script type="text/javascript" language="javascript">
    $(function() {
        $('.textBoxEmployeeNumber').val("fgg");
    });
</script> 

tuy nhiên, nó không hoạt động ... lỗi trong cú pháp của tôi là gì?


1
tôi đã sử dụng văn bản đầu vào bên trong một biểu mẫu ....
raberana

Câu trả lời:


529

Bộ chọn của bạn đang truy xuất hộp văn bản xung quanh <div class='textBoxEmployeeNumber'>thay vì đầu vào bên trong nó.

// Access the input inside the div with this selector:
$(function () {
  $('.textBoxEmployeeNumber input').val("fgg");
});

Cập nhật sau khi thấy HTML đầu ra

Nếu mã ASP.NET đáng tin cậy xuất HTML <input>với thuộc tính id id='EmployeeId', bạn có thể chỉ cần sử dụng:

$(function () {
  $('#EmployeeId').val("fgg");
});

Không thực hiện được điều này, bạn sẽ cần xác minh trong bảng điều khiển lỗi của trình duyệt rằng bạn không có các lỗi tập lệnh khác khiến điều này không thành công. Ví dụ đầu tiên ở trên hoạt động chính xác trong trình diễn này.


đã thử, không hoạt động .... cũng đã thử .textBoxEmployeeNumber input = [type = "text"] ... không hoạt động cũng được
raberana

@USE (Html.BeginForm ()) {@ Html. Xác nhận LabelFor (model => model.EmployeeId, "Số nhân viên") </ div> <div class = "text-field textBoxEmployeeNumber"> @ Html.EditorFor (model => model.EmployeeId) @ Html.ValidationMessage .EmployeeId) </ div> ..........
raberana

<div class = "Editor-nhãn"> <nhãn for = "EmployeeId"> Số nhân viên </ nhãn> </ div> <div class = "text-field textBoxEmployeeNumber"> <input class = "text-box "data-val =" true "data-val-number =" Trường EmployeeId phải là một số. " data-val-required = "Trường EmployeeId là bắt buộc." id = "EmployeeId" name = "EmployeeId" type = "text" value = "" /> <span class = "field-verify-valid" data-valmsg-for = "EmployeeId" data-valmsg-thay = "true" > </ span> </ div>
raberana

@ RojBeraña Trình duyệt có đọc mã bên trong hàm $ (tài liệu) của bạn không? đặt cảnh báo ở đó: <script type = "text / javascript" ngôn ngữ = "javascript"> alert ('enter'); $ (function () {$ ('# EmployeeId'). val ("fgg");}); </ script>
karaxuna

Có vấn đề tương tự, giá trị hiển thị trong trình duyệt, nhưng khi tôi kiểm tra mã bằng F12, có value=""và trống được gửi trong DB sau khi lưu.
Sebastian Xawery Wiśniowiecki

67

Sử dụng jQuery, chúng ta có thể sử dụng đoạn mã sau:

Chọn theo tên đầu vào:

$('input[name="textboxname"]').val('some value')

Chọn theo lớp đầu vào:

$('input[type=text].textboxclass').val('some value')

Chọn theo id đầu vào:

$('#textboxid').val('some value')

12
$(document).ready(function () {
    $('#EmployeeId').val("fgg");

    //Or
    $('.textBoxEmployeeNumber > input').val("fgg");

    //Or
    $('.textBoxEmployeeNumber').find('input').val("fgg");
});

5

Đối với phần tử có id

<input id="id_input_text16" type="text" placeholder="Ender Data"></input>

Bạn có thể đặt giá trị là

$("#id_input_text16").val("testValue");

Tài liệu ở đây .


4

cái này dành cho lớp

$('.nameofdiv').val('we are developers');

cho id

$('#nameofdiv').val('we are developers');

Bây giờ nếu bạn có một iput ở dạng bạn có thể sử dụng

$("#form li.name input.name_val").val('we are awsome developers');

0

Đây là một biến thể khác cho một tệp tải lên có nút bootstrap trông đẹp hơn nút duyệt tìm tệp tải lên mặc định. Đây là html:

<div class="form-group">
        @Html.LabelFor(model => model.FileName, htmlAttributes: new { @class = "col-md-2  control-label" })
        <div class="col-md-1 btn btn-sn btn-primary" id="browseButton" onclick="$(this).parent().find('input[type=file]').click();">browse</div>
        <div class="col-md-7">
            <input id="fileSpace" name="uploaded_file"  type="file" style="display: none;">   @*style="display: none;"*@
            @Html.EditorFor(model => model.FileName, new { htmlAttributes = new { @class = "form-control", @id = "modelField"} })
            @Html.ValidationMessageFor(model => model.FileName, "", new { @class = "text-danger" })
        </div>
    </div>

Đây là kịch bản:

        $('#fileSpace').on("change", function () {
        $("#modelField").val($('input[name="uploaded_file"]').val());

0

Trong js thuần sẽ đơn giản hơn

EmployeeId.value = 'fgg';

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.