2016-11-22 2 views
-3

In meinem C# MVC-app zu erfassen, habe ich eine Reihe von Textboxen, die als solche erzeugt werden ...Wie den Wert einer Textbox von einem Ereignis OnChange

@foreach (object item in items) 
{ 
    @Html.TextBox(....) 
} 

Das gerenderte Ergebnis eine Reihe von Text Boxen, die wie folgt aussehen ....

<input class="item-quantities valid" data-bomid="1939" data-rid="2054" id="AddedItemIDs_1939_" name="AddedItemIDs[1939]" onchange="ChangeItemQuantity(156,78)" onkeypress="return isNumberKey(event)" type="text" value="7" aria-invalid="false"> 

<input class="item-quantities valid" data-bomid="1940" data-rid="1055" id="AddedItemIDs_1940_" name="AddedItemIDs[1940]" onchange="ChangeItemQuantity(159,90)" onkeypress="return isNumberKey(event)" type="text" value="1"> 

Jetzt muss ich eine Javascript/jQuery-Funktion, in der ich drei Werte erfassen kann:

  1. bomid
  2. befreien
  3. der neue Wert der Textbox

Ich bin ganz gut den Wert erfassen, wenn die Textbox Fokus (out Register, etc.) verliert

Ich habe schon versucht, diese (OHNE onchange = "ChangeItemQuantity()" in der Textbox, aber aus irgendeinem Grund kann ich dieses Ereignis nie auslösen. Plus, ich möchte lieber nicht es auf diese Weise tun, denn dann bin ich gezwungen, zu starr zu sein, welche Klassen ich die Textfelder zuordnen ....

$(function() { 
     $('.item-quantities.valid').change(function() { 
      var value = $(this).val(); 
      var bomid= $(this).data('bomid'); 
      var rid= $(this).data('rid'); 
     }); 
    }); 

Und ich habe versucht, diese (MIT onchange = "ChangeItemQuantity (159,90) "in der Textbox). Ich würde es so lieber tun, als es mir erlaubt, mit den Klassen in dem Textfeld ein, flexibel zu sein ...

function ChangeItemQuantity(bomid, rid) { 
    // no idea how I would capture the value here. 
} 
+0

Was Sie mit den erfassten Werten zu tun versuchen? Implementieren Sie eine Art von VM-Speicher oder aktualisieren Sie Ihr Modell über Ajax? – Jecoms

+0

Update-Modell über Ajax. Um diesen Teil mache ich mir keine Sorgen. Es sind nur die Werte, die mir gerade Probleme bereiten. Und nicht einmal die Werte. Nur der tatsächliche Wert der Textbox. –

+0

Ich wünschte, die Leute würden ihre Down-Stimmen erklären –

Antwort

2

hinzufügen ein weiteres Argument für die Funktion in das Element passieren und bekommt es ist value:

onchange="ChangeItemQuantity(156,78, this)" 

function ChangeItemQuantity(bomid, rid, el) { 
    alert(el.value) 
} 
0

Sie könnten das Attribut der Wert wie folgt holen,

function getValues(){ 
var actual=$(this).value; 
var bomid=$(this).attr('bomid'); 
var rid=$(this).attr('rid'); 
} 
Verwandte Themen