web-dev-qa-db-fra.com

changer le texte de l'étiquette sur l'événement onchange de @ Html.TextboxFor dans mvc3

Je travaille avec MVC3 Razor. Je veux changer le texte du label sur l'événement onchange @ Html.TextboxFor 

Voici mon code pour ce que j'essaye:

En vue:

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "event();" })

JavaScript:

function event() {
    document.getElementById('lblSelectedProductName').value ="sam";
}

Mais ça ne marche pas.

6
user2450398

Utilisez cette syntaxe jquery pour que son travail fonctionne bien.

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @id="txtid",@onchange = "onchangeevent();" })

function onchangeevent(){
        $('#txtid').val('sam');
    }
19
Janki

Cela peut être accompli avec JavaScript, mais je suis plus à l'aise d'utiliser jQuery. J'aime séparer mon HTML et mon JavaScript et écouter plutôt l'événement on change après le chargement de tous les contrôles dans le DOM.

Votre balise HTML pour la zone de texte pourrait ressembler à ceci. J'ai ajouté mon propre élément d'étiquette à des fins de test.

<input id="ItnScanCaseCode" name="ItnScanCaseCode" type="text" value="" />
<label id="lblSelectedProductName">Test Label Text</label>

Et votre script jQuery pour ajouter l'écouteur d'événement on change:

$(document).ready(function () {
     $('#ItnScanCaseCode').change(function () {
          $('#lblSelectedProductName').text('sam');
     });
});

Si vous avez besoin d'ajouter ce libellé à une autre méthode, procédez comme suit, mais la méthode ci-dessus me suffit.

$(document).ready(function () {
     function yourEventMethod() {
          $('#lblSelectedProductName').text('sam');
     };

     $('#ItnScanCaseCode').change(function () {
          yourEventMethod();
     });
});

J'espère que ça aide.

4
Brendan Vogt

tu peux essayer ça

  @Html.TextBoxFor(model => model.Image, new { type = "file",
                       @onchange = "show(this);" })

Où est mon JavaScript

<script type="text/javascript">

   function show(input) {
      if (input.files && input.files[0]) {
      var filerdr = new FileReader();
      filerdr.onload = function (e) {
         $('#user_img').attr('src', e.target.result);
      }
      filerdr.readAsDataURL(input.files[0]);
   }
}
</script> 
0
Debendra Dash

Le problème est avec le nom de l'événement, essayez avec un nom différent, cela fonctionnera.

@Html.TextBoxFor(x => x.ItnScanCaseCode, new { @onchange = "onchangeevent();" })

function onchangeevent(){
        document.getElementById('lblSelectedProductName').value ="sam";
    }

Cordialement

0
Sridhar Narasimhan