2011-01-14 30 views
0

Ich bin in ausgewähltem mit Javascript gesetzt Artikel versucht (in Variable Ich habe Datum)Javascript in select in Selen

Hier sind, wie ich dieses Element Des Versuch

<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=javascript{d=new Date();d.getYear()}</td> 
</tr> 

erhalte ich:

[error] Option with value 'javascript{d=new Date();d.getYear()}' not found 

cource wenn ich damit bin versucht:

<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=2011</td> 
</tr> 

es funktioniert.

Was muss ich in diesem Code ändern, um dieses Element zu setzen?

EDIT

Ich möchte diesen Befehl nicht in wenigen Befehlen spalten, weil in einem anderen Testfall I variable Geburtstag

<tr> 
    <td>storeEval</td> 
    <td>new Date('1966,09,16')</td> 
    <td>dateOfBirth</td> 
</tr> 

gespeichert haben, und ich habe 3 wählt: Birth-Day, Geburtsmonat und Geburtsjahr Ich möchte keine 3 Variablen erstellen.

Ich möchte wie diese Elemente in ausgewählten einzustellen:

<tr> 
     <td>select</td> 
     <td>Birth-Year</td> 
     <td>value =${dateOfBirth.getFullYear()}</td> 
    </tr> 

Antwort

3

Speichern Sie die JavaScript Auswertung zuerst (mit storeEval) und dann diese Variable als Optionswert verwenden:

<tr> 
    <td>storeEval</td> 
    <td>new Date().getYear()</td> 
    <td>varYear</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Recent-Year</td> 
    <td>value=${varYear}</td> 
</tr> 

, die funktionieren sollte


aktualisieren: Als Reaktion auf Ihre Bearbeitung: Sie können die value= nicht mit JavaScript verwenden, aber Sie können die in der JavaScript-Umgebung verfügbare Variable storedVars verwenden, um alle benötigten Variablen zu erstellen. Zum Beispiel kann storedVars['myVar'] direkt durch Selen als ${myVar} zugegriffen werden. Im Folgenden verwende ich verifyEval, um JavaScript auszuführen, das alle Variablen erstellt, die ich benötige.

<tr> 
    <td>storeEval</td> 
    <td>new Date()</td> 
    <td>myDate</td> 
</tr> 
<tr> 
    <td>verifyEval</td> 
    <td>var date=storedVars['myDate']; storedVars['day']=date.getDate(); storedVars['month']=date.getMonth(); storedVars['year']=date.getFullYear();</td> 
    <td></td> 
</tr> 

Dann können Sie die Optionen auswählen, basierend auf:

<tr> 
    <td>select</td> 
    <td>Birth-Day</td> 
    <td>value=${day}</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Birth-Month</td> 
    <td>value=${month}</td> 
</tr> 
<tr> 
    <td>select</td> 
    <td>Birth-Year</td> 
    <td>value=${year}</td> 
</tr> 

Ich weiß, es ist nicht die ideale Lösung, aber es hat ein wenig helfen, da Sie nicht value=javascript{...} tun kann (nicht dass ich wüsste Wie auch immer, aber wenn jemand anderes etwas anderes weiß, dann sag es bitte).

+0

ja, das funktioniert und danke dafür, aber ich will es nicht, weil ich in einem anderen Testfall Variablen Geburtstag gespeichert habe (neues Datum ('1974,09,16')) und ich habe 3 ausgewählt: dayOfBirth, monthOfBirth und YearOfBirth und ich möchte nicht 3 Variablen erstellen. Ich möchte Elemente in auswählen, zB Wert = $ {dateOfBirth.getFullYear()} – user278618

+0

@ user278618 Ich habe meine Antwort aktualisiert. Leider glaube ich nicht, dass es eine Möglichkeit gibt, das zu tun, wonach Sie suchen, aber ich habe eine Lösung zur Verfügung gestellt, die zumindest die Menge minimiert, die Sie tun müssen. –

+0

@Downvoter - ein Grund, warum Sie downvoted? Wenn Sie etwas vorschlagen, dann helfen Sie bitte, indem Sie einen Kommentar hinterlassen. –