2017-06-02 5 views
0

ich zwei Radio-Buttons haben:ändern Optionsfeld Wert mit Javascript

<input type="radio" name="editList" id="prov" value="Admin">Admin 
<input type="radio" name="editList" id="user" value="User">User 

Ich möchte Werte mit Javascript ändern, und ich versuche, wie:

var typeu= $('input[type=radio][name=editList]').val(); 

if (typeu=== "Admin") { 
    typeu= typeu.val() === "A"; 
} else if (typeu === 'User') { 
    typeu= typeu.val() === "U"; 

Aber ich bekomme Ausgabe:

Uncaught TypeError: typeu.val ist keine Funktion

Kann mir bitte jemand helfen?

+0

Bitte veröffentlichen Sie ein [minimales, vollständiges und verifizierbares Beispiel] (https://stackoverflow.com/help/mcve). Was ist "tipoResponsable" und wie verwenden Sie "typeu", nachdem Sie versucht haben, ihm den neuen Wert zuzuweisen? –

+1

Sie versuchen, '.val()' auf 'typu' aufzurufen, was' $ ('input [type = radio] [name = editList]'). Val() 'ist, das wird nicht funktionieren. – xDreamCoding

+0

'Typu' ist eine Zeichenfolge, kein Objekt. –

Antwort

0

dieses

var typeu = $('input[type=radio][name=editList]'); 

$.each(typeu, function(i, v) { 
    if ($(v).val() === "Admin") { 
    $(v).val("A"); 
    } else if ($(v).val() === 'User') { 
    $(v).val("U"); 
    } 
}); 

https://jsfiddle.net/za61z3vx/

Erste Linie versuchen, Sie alle Eingaben erhalten, die type=radio und name=editList entsprechen. Da es mehr als ein Array gibt, müssen Sie es durchlaufen.

0

Radioknopf Um zu überprüfen, indem du JavaScript sollten Sie "prop" -Funktion

$('#prov').prop('checked', true); 
// or $('#prov').prop('checked', false); 

zu erhalten geprüft verwenden prop u verwenden sollten:

$('#prov').prop('checked'); 

aus dem Code:

var typeu= $('input[type=radio][name=editList]'); 
typeu.each(radio => { 
    const $rb = $(radio); 
    console.log($rb.val(), $rb.prop('checked')) 
}); 
0

Verwenden Sie val(function)

var radioValues = { 
 
    'Admin':'A', 
 
    'User':'U' 
 
}; 
 

 
$('#prov, #user').val(function(_, existingValue){ 
 
    // if current value matches keys in object, will return new value 
 
    // if not a match will return existing value 
 
    return radioValues[this.value] || existingValue; 
 
}) 
 
// log updated values for this demo 
 
.each(function(){ 
 
    console.log(this.id, 'value is', this.value) 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="radio" name="editList" id="prov" value="Admin">Admin 
 
<input type="radio" name="editList" id="user" value="User">User


Beachten Sie, dass Ihr Versuch nur Wert des ersten Elements zurück. Sie müssen diese Schleife durchlaufen und mit jeder Instanz umgehen.

Verwandte Themen