Jak ustawić wartość tekstu wejściowego za pomocą jQuery

349

Mam tekst wejściowy, który jest następujący:

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

Które produkują następujące 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>

Chcę ustawić wartość tego tekstu wejściowego za pomocą jquery, więc zrobiłem to:

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

jednak to nie działa ... jaki jest błąd w mojej składni?

raberana
źródło
1
użyłem tekstu wejściowego w formularzu ....
raberana

Odpowiedzi:

528

Selektor pobiera otoczenie pola tekstowego <div class='textBoxEmployeeNumber'>zamiast wprowadzanych danych.

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

Zaktualizuj po wyświetleniu wyjściowego kodu HTML

Jeśli kod ASP.NET niezawodnie wyświetla kod HTML <input>z atrybutem id id='EmployeeId', możesz po prostu użyć:

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

Jeśli to się nie powiedzie, musisz sprawdzić w konsoli błędów przeglądarki, czy nie występują inne błędy skryptu powodujące błąd. Pierwszy przykład powyżej działa poprawnie w tej demonstracji.

Michał Berkowski
źródło
próbowałem tego, nie działa .... próbowałem również .textBoxEmployeeNumber input = [type = "text"] ... nie działa również
raberana
@using (Html.BeginForm ()) {@ Html.ValidationSummary (true) <zestaw pól> <legend> Rezerwacja </legend> ......... <div class = "editor-label"> @Html. LabelFor (model => model.EmployeeId, „Numer pracownika”) </div> <div class = "pole-edytora textBoxEmployeeNumber"> @ Html.EditorFor (model => model.EmployeeId) @ Html.ValidationMessageFor (model => model .EmployeeId) </div> ..........
raberana
<div class = "editor-label"> <label for = "EmployeeId"> Numer pracownika </label> </div> <div class = "pole-edytora textBoxEmployeeNumber"> <input class = "text-box single-line "data-val =" true "data-val-number =" Pole EmployeeId musi być liczbą. " data-val-wymagany = "Pole EmployeeId jest wymagane." id = "EmployeeId" name = "EmployeeId" type = "text" value = "" /> <span class = "field-validation-validation" data-valmsg-for = "EmployeeId" data-valmsg-replace = "true" > </span> </div>
raberana
@ RojBeraña Czy przeglądarka odczytuje kod z funkcji $ (dokumentu) .ready? umieść tam alert: <script type = "text / javascript" language = "javascript"> alert („wszedł”); $ (function () {$ ('# EmployeeId'). val ("fgg");}); </script>
karaxuna
Mam podobny problem, wartość jest widoczna w przeglądarce, ale kiedy sprawdzam kod za pomocą F12, value=""po zapisaniu w DB jest puste pole.
Sebastian Xawery Wiśniowiecki
67

Korzystając z jQuery, możemy użyć następującego kodu:

Wybierz według nazwy wejściowej:

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

Wybierz według klasy wejściowej:

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

Wybierz według identyfikatora wejściowego:

$('#textboxid').val('some value')
Aditya P Bhatt
źródło
12
$(document).ready(function () {
    $('#EmployeeId').val("fgg");

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

    //Or
    $('.textBoxEmployeeNumber').find('input').val("fgg");
});
Thulasiram
źródło
5

Dla elementu o identyfikatorze

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

Możesz ustawić wartość jako

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

Dokumentacja tutaj .

Aniket Thakur
źródło
4

to jest dla klas

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

dla identyfikatorów

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

teraz, jeśli masz iput w formie, której możesz użyć

$("#form li.name input.name_val").val('we are awsome developers');
użytkownik4920718
źródło
0

Oto kolejna odmiana przesyłania pliku, która ma ładniej wyglądający przycisk ładowania początkowego niż domyślny przycisk przeglądania przesyłania plików. To jest 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>

Oto skrypt:

        $('#fileSpace').on("change", function () {
        $("#modelField").val($('input[name="uploaded_file"]').val());
Rower Dave
źródło
0

W czystym js będzie to prostsze

EmployeeId.value = 'fgg';

Kamil Kiełczewski
źródło