2012-11-01 18 views

cevap

8

en böyle bir şeyle HTML'nizi var diyelim: değerleri aşağıdaki gibi bir şey olurdu elde etmek

<form > 
     <input type="radio" name="gender" id="gender_male" value="male">Male<br> 
     <input type="radio" name="gender" id="gender_female" value="female">Female 
    </form> 

    <form> 
     <input type="checkbox" id="baconLover">I like bacon<br> 
    </form> 

Kişisel Dart kodu onay kutusu tıklandığında, ben de biliyorum bir etkinlik ekledi .

import 'dart:html'; 

void main() { 

    // Adds a click event when the checkbox is clicked 
    query("#baconLover").on.click.add((MouseEvent evt) { 
    InputElement baconCheckbox = evt.target; 

    if (baconCheckbox.checked) { 
     print("The user likes bacon"); 
    } else { 
     print("The user does not like bacon"); 
    } 

    }); 

    // Adds a click event for each radio button in the group with name "gender" 
    queryAll('[name="gender"]').forEach((InputElement radioButton) { 
    radioButton.onclick.listen((e) { 
     InputElement clicked = e.target; 
     print("The user is ${clicked.value}"); 
    }); 
    }); 

} 
+0

Kullanıcı, sekme tuşunu kullanarak kumandaya giderse bu boşluk mu, sonra boşluk tuşunu kullanarak seçer mi? (Düzenle, şaşırtıcı bir şekilde: Hayır, hala çalışıyor) –

+0

@ Günter 'radioButton.on.click' işlevini 'radiobutton.onClick' olarak değiştirmem gerekiyordu, ancak API'da add() yöntemi bulunmuyor. Ayrıca "InputElement", "RadioButtonInputElement" olarak değiştirilmelidir? –

+1

Bu eski API'sidir. Kodu güncelledim. –

1

ben yakalamak olay "html" tarafından ... Projemde içine bu çözümü kullanmış radyo düğmesi için this solution bulundu.

my_example.html

<polymer-element name="my-example"> 
    <template> 
    <div on-change="{{updateRadios}}"> 
     Your favorite color is: 
     <div> 
     <label for="red">Red <input name="color" type="radio" id="red" value="red"></label> 
     </div> 
     <div> 
     <label for="green">Green <input name="color" type="radio" id="green" value="green"></label> 
     </div> 
     <div> 
     <label for="blue">Blue <input name="color" type="radio" id="blue" value="blue"></label> 
     </div> 
    </div> 
    <div> 
     You selected {{favoriteColor}} 
    </div> 
    </template> 
    <script type="application/dart" src="my_example.dart"></script> 
</polymer-element> 

my_example.dart

import 'package:polymer/polymer.dart'; 
import 'dart:html'; 

@CustomTag('my-example') 
class MyExample extends PolymerElement { 
    @observable String favoriteColor = ''; 

    MyExample.created() : super.created(); 

    void updateRadios(Event e, var detail, Node target) { 
    favoriteColor = (e.target as InputElement).value; 
    } 

}