2009-08-17 4 views
1

Hey Leute, ich arbeite derzeit an etwas und ich möchte, wenn ich ein Textfeld Element den Wert davon klicken. Das einzige Problem ist, dass es keine ID hat.Mootools: Holen Sie sich den Wert des geklickten Elements

meine HTML-Code:

<ul id="textbox"> 
    <li><input type="text" value="test1" name="chosen" disabled="disabled" /></li> 
    <li><input type="text" value="test2" name="chosen" disabled="disabled" /></li> 
    <li><input type="text" value="test3" name="chosen" disabled="disabled" /></li> 
    <li><input type="text" value="test4" name="chosen" disabled="disabled" /></li> 
</ul> 

mein Mootools Code:

window.addEvent('domready', function() { 

    var el = $('textbox'); 

}); 

Wenn ich die erste Textbox klicken ich test1 aufmerksam zu machen möchten. Wenn ich die zweite klicken Ich möchte test2

alarmieren, dachte ich an IDs auf die Textfelder hinzufügen, aber die Textfelder sind variabel ...

Vielen Dank im Voraus ..

Antwort

2

Zu allererst du hast ein Problem. Deaktivierte Formularelemente lösen keine DOM-Ereignisse aus. Sie müssen also herausfinden, wie Sie damit umgehen möchten.

Zweitens zu Ihrer Frage. MooTools has a selector zu tun, was Sie wollen. Ich glaube, die unter Schnipsel funktioniert (ich bin kein Experte Mootools)

var el = $('textbox'); 
el.getElements('input[name=chosen]').addEvents({ 
    'click': function() 
    { 
     alert(this.value); 
    } 
}); 

Auch dies wird nicht funktionieren, wenn Sie die disabled="disabled" von Ihren Eingaben entfernen.

+0

Peter: warum, es wird unabhängig von der Behinderte funktionieren - vielleicht wird es nicht visuell auf dem Bildschirm ändern, sondern in ein benutzerdefiniertes Click-Ereignis für das Element erstellen, können Sie dennoch mit ihm interagieren. Dinge, die ich ändern würde, ist this.value -> this.get ("value") (Best Practice und erlaubt Ihnen, String-Prototypen zu verwenden) und den Selektor fallen lassen kann wahrscheinlich als getElements ("input") bleiben, es sei denn, sie beginnen zu variieren. –

+0

@Dimitar - Ich bin verwirrt - sagen Sie, dass DOM-Ereignisse von einem deaktivierten Formularelement ausgelöst werden? Weil das nicht stimmt. Ich ermutige Sie, einen einfachen Test zu machen, um selbst zu sehen ' '. Sicher, Sie können einen Ereignis-Listener registrieren, aber er wird nie ausgelöst, da diese Ereignisse niemals in das DOM gesendet werden. –

+0

Hrm - Sie haben Recht, ich wusste das nicht. –