Как установить значение вводимого текста с помощью jQuery


351

У меня есть входной текст, который это:

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

Которые производят следующие 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>

Я хочу установить значение этого входного текста с помощью jquery, поэтому я сделал это:

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

однако, это не работает ... что является ошибкой в ​​моем синтаксисе?


1
я использовал входной текст внутри формы ....
raberana

Ответы:


530

Ваш селектор получает окружение текстового поля <div class='textBoxEmployeeNumber'>вместо ввода внутри него.

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

Обновление после просмотра выходного HTML

Если код ASP.NET надежно выводит HTML <input>с атрибутом id id='EmployeeId', вы можете просто использовать:

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

В противном случае вам нужно будет проверить в консоли ошибок вашего браузера, что у вас нет других ошибок скрипта, приводящих к сбою. Первый пример выше работает правильно в этой демонстрации.


попробовал это, не работает .... попробовал также .textBoxEmployeeNumber input = [type = "text"] ... также не работает
raberana

@using (Html.BeginForm ()) {@ Html.ValidationSummary (true) <fieldset> <legend> Reservation </ legend> ......... <div class = "editor-label"> @Html. LabelFor (модель => модель. .EmployeeId) </ div> ..........
raberana

<div class = "editor-label"> <label for = "EmployeeId"> Номер сотрудника </ label> </ div> <div class = "editor-field textBoxEmployeeNumber"> <input class = "text-box single-line "data-val =" true "data-val-number =" Поле EmployeeId должно быть числом. " data-val-required = "Поле EmployeeId является обязательным." id = "EmployeeId" name = "EmployeeId" type = "text" value = "" /> <span class = "field-validation-valid" data-valmsg-for = "EmployeeId" data-valmsg-replace = "true" > </ span> </ div>
Раберана

@ RojBeraña Читает ли браузер код внутри вашей функции $ (document) .ready? разместите здесь предупреждение: <script type = "text / javascript" language = "javascript"> alert ('введите'); $ (function () {$ ('# EmployeeId'). val ("fgg");}); </ script>
karaxuna

Имеют аналогичную проблему, значение отображается в браузере, но когда я проверяю код с помощью F12, value=""после сохранения в БД остается пустое поле.
Себастьян Xawery Wiśniowiecki

67

Используя jQuery, мы можем использовать следующий код:

Выберите по имени ввода:

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

Выберите по классу ввода:

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

Выберите по идентификатору ввода:

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

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

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

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

5

Для элемента с идентификатором

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

Вы можете установить значение как

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

Документация здесь .


4

это для занятий

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

для идентификаторов

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

Теперь, если у вас есть iput в форме, которую вы можете использовать

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

0

Вот еще один вариант для загрузки файла, который имеет более приятную на вид кнопку начальной загрузки, чем кнопка обзора загрузки файла по умолчанию. Это 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>

Вот сценарий:

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

0

В чистом js будет проще

EmployeeId.value = 'fgg';

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.