Come impostare il valore del testo di input utilizzando jQuery


350

Ho un testo di input che è questo:

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

Che producono seguenti 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>

Voglio impostare il valore di questo testo di input utilizzando jquery, quindi ho fatto questo:

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

tuttavia, non funziona ... qual è l'errore nella mia sintassi?


1
ho usato il testo di input all'interno di un modulo ....
raberana,

Risposte:


529

Il selettore sta recuperando la casella di testo circostante <div class='textBoxEmployeeNumber'>anziché l'input al suo interno.

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

Aggiorna dopo aver visto l'output HTML

Se il codice ASP.NET genera in modo affidabile l'HTML <input>con un attributo id id='EmployeeId', puoi semplicemente usare:

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

In caso contrario, dovrai verificare nella console degli errori del tuo browser che non ci siano altri errori di script che causano l'errore. Il primo esempio sopra funziona correttamente in questa dimostrazione.


provato che, non funziona .... provato anche .textBoxEmployeeNumber input = [type = "text"] ... non funziona anche
raberana,

@using (Html.BeginForm ()) {@ Html.ValidationSummary (true) <fieldset> <legend> Reservation </legend> ......... <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> ..........
raberana,

<div class = "editor-label"> <label for = "EmployeeId"> Numero dipendente </label> </div> <div class = "editor-field textBoxEmployeeNumber"> <input class = "text-line single-box "data-val =" true "data-val-number =" Il campo EmployeeId deve essere un numero. " data-val-richiesto = "Il campo EmployeeId è obbligatorio." id = "EmployeeId" name = "EmployeeId" type = "text" value = "" /> <span class = "field-validation-valid" data-valmsg-for = "EmployeeId" data-valmsg-replace = "true" > </span> </div>
raberana,

@ RojBeraña Il browser legge il codice all'interno del tuo $ (documento). Già funziona? inserire un avviso lì: <script type = "text / javascript" language = "javascript"> alert ('immesso'); $ (function () {$ ('# EmployeeId'). val ("fgg");}); </script>
karaxuna,

Hanno un problema simile, il valore è visibile nel browser, ma quando controllo il codice con F12, c'è value=""e vuoto archiviato nel DB dopo il salvataggio.
Sebastian Xawery Wiśniowiecki

67

Usando jQuery, possiamo usare il seguente codice:

Seleziona per nome di input:

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

Seleziona per classe di input:

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

Seleziona per ID input:

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

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

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

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

5

Per elemento con ID

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

È possibile impostare il valore come

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

Documentazione qui .


4

questo è per le classi

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

per ID

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

ora se hai un iput in una forma che puoi usare

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

0

Ecco un'altra variante per un caricamento di file che ha un pulsante bootstrap dall'aspetto migliore rispetto al pulsante di esplorazione di caricamento file predefinito. Questo è 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>

Ecco la sceneggiatura:

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

0

In puro js sarà più semplice

EmployeeId.value = 'fgg';

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.