2009-10-09 6 views
1

J'ai des chaînes comme ceci:jQuery: Éclate une chaîne, puis l'insérer dans l'entrée, puis sélectionnez

"Car is blue" 

chaîne pourrait aussi ressembler à ceci:

"Flower is not at all beautiful" 

Je html comme ceci:

<input class="subject" /> 
<select class="isornot"> 
    <option>is</option> 
    <option>is not</option> 
</select> 
<input class="adjective" /> 

Je dois séparer la chaîne et la placer aux endroits appropriés dans le formulaire. Pour la première chaîne, le sujet val doit être voiture, doit être sélectionné, et la valeur adjectif doit être bleu. Pour la deuxième chaîne, la fleur est le sujet, n'est pas l'option de sélection, et «du tout beau» devrait être l'adjectif.

Par conséquent, la division doit être est ou n'est pas. Je ne sais pas comment s'y prendre. Merci.

+1

Le motif est-il toujours un seul mot suivi d'un espace suivi d'un «est» ou d'un «n'est pas»? – karim79

+0

Oui, c'est vrai. – Mark

Répondre

2

Ajout d'une zone d'entrée avec l'ID "string"

 

function split() 
{ 
var strings=$("#string").attr("value").split("is not"); 
if (strings.length==2){ 
    assingData(strings,1); 
} 
else{ 
    strings=$("#string").attr("value").split(" is "); 
    assingData(strings,0); 
} 
} 

function assingData(value,index){ 
    if(value.length==2){ 
     $(".subject").attr("value",value[0]);  
     $(".isornot option:eq("+index+")").attr("selected", "selected"); 
     $(".adjective").attr("value",value[1]); 
    } 
    else{ 
     alert("malformed strings"); 
    } 

}
+0

assingdata, heehee, merci beaucoup. Cela ressemble plus à ce que j'ai envisagé, en utilisant split plutôt que regex, et la raison pour laquelle cela est important pour moi est parce que mon cas réel est un peu plus compliqué, et il est plus facile d'adapter cette solution plutôt que l'expression régulière. Merci. – Mark

Questions connexes