2016-05-19 13 views
0

Ich muss zwei verschiedene Werte als Ergebnis von einem Kontrollkästchen zurückgeben. Ich habe versucht, ein Objekt, aber das Ergebnis war undefiniert (der Code arbeitet mit einem Wert).Zuweisen von zwei Werten zu einem Kontrollkästchen Javascript

result.value1 ist immer undefiniert, während result nur für einen String arbeitet.

Was ist der beste Weg, dies mit Javascript/jquery zu tun.

Antwort

3

Sie attr verwenden können, um weitere Werte hinzufügen, zum Beispiel:

<input type="checkbox" id="cat" data-value1="blue" data-value2="red" value=""/> 

Get Werte mit jQuery, zu verwenden:

$("#cat").data("value1");//return 'blue' 
$("#cat").data("value2");//return 'red' 

Ergebnis:https://jsfiddle.net/cmedina/a0ya5bwp/

-1

es sieht aus wie Sie einen Rechtschreibfehler haben: vaule1 Wert1 sein sollte

+0

bearbeitet. Ich habe die Variablen umbenannt, um sie klarer zu machen. – user1212520

+0

netter Downvote zum Auffinden des Rechtschreibfehlers ... –

0

Warum einen String mit einem Separator So etwas wie Wert1 \ t Wert2 nicht

Und Sie nur für diesen Separator zu suchen haben und schneiden Sie die Zeichenfolge, um Ihre 2 differents Werte schaffen?

+0

Danke, das war mein ursprünglicher Plan, aber ich dachte, ich habe mein Testobjekt zur Arbeit bekommen. Ein Objekt wäre die einfachste Route (wenn es funktioniert). – user1212520

0

Sie können das Objekt stringifizieren und diesen Wert als Datenattribut in die Eingabe eingeben. Analysieren Sie die Zeichenfolge im Eingabeänderungs-Handler auf JSON.

HTML

<input type="checkbox" id="cat" name="cat"> 
<label for="cat">Cat</label> 

Javascript

var input = document.getElementById('cat'); 
var testValue = {value1: 'blue', value2: 'red'}; 

input.setAttribute('data-value',JSON.stringify(testValue)); 

input.addEventListener('change', function(event) { 
    var inputValue = JSON.parse(event.target.getAttribute('data-value')); 
    console.log(inputValue); 
}); 

Demo: JSFiddle

Verwandte Themen