0
$("form").submit(function () {
if ($.inArray($("input:first").val().toUpperCase(), ["UNITED STATES", "USA", "AMERICA"]) > -1) {
//function here
});

<div class="answers">"UNITED STATES", "USA", "AMERICA"</div>

$("form").submit(function () {
if ($.inArray($("input:first").val().toUpperCase(),  [$(".answers").html()]) > -1) {  
//function here
});

クラスの回答があるdiv内に、検証する必要のある結果があります。jquery function .htmlを使用すると、結果は正常に出力されますが、検証する場合は、文全体を検証する必要があります。「UNITED STATES」、「USA」、「AMERICA」は、最初の関数のようにすべての回答を単独で検証するわけではありません。 。どうすればこれを機能させることができますか?

4

2 に答える 2

1

Splitを使用して、回答の文字列を配列に変換します。答えが間隔を空けていない場合、たとえばAMERICA、USAではなくAMERICA、USAの方がうまくいくでしょう。

$("form").submit(function () {
if ($.inArray($("input:first").val().toUpperCase(), $(".answers").html().split(',')) > -1)
{
    //function here
};
于 2012-05-02T15:42:53.287 に答える
1

これらの答えがどのような形式であるかはわかりません。なぜJS変数ではなくHTMLに出力するのですか?

何がうまくいくか:

var answerarray = $(".answers").text().split(", ");

または(あなたの見積もりについてはよくわかりません):

var answerarray = jQuery.parseJSON("[" + $(".answers").text() + "]"); // ugliest code I've ever written
于 2012-05-02T15:43:07.267 に答える