2

フォーム内のすべての値を調べようとしていますが、未定義になり続け、値が表示されます。私はフォームを動的に作成しているので、未定義はおそらく空白のフィールドから来ていると思います。

すべての要素を取得するために使用しているコードは次のとおりです。

//try to get all elements
var output;
$(this).parents('form') // For each element, pick the ancestor that's a form tag.
.find(':input') // Find all the input elements under those.
.each(function(i) {
    //alert(this.value+ " = " + i);
    if (typeof this.value === "undefined") {
        output = "nothing here";
    } else {
        output += this.value;
    }
});
$("div#total").append("value = " + output + "<br>");

1,2,3,4,5,6 と入力すると、出力は次のようになります。

hello value = undefined
value = undefined1
value = undefined1
value = undefined12
value = undefined12
value = undefined123
value = undefined123
value = undefined1234
value = undefined1234
value = undefined12345
value = undefined12345
value = undefined123456

結果は、未定義の部分を除いて私が望むものです。私はこの答えを見ました: JavaScript: undefined !== undefined? 彼らの提案を試してみましたが、値が未定義でない場合、プログラムに値を保存させることができないようです。

それが役立つ場合は、完全なコードを次に示します: http://jsfiddle.net/lostsoul/rKLrZ/

4

2 に答える 2

3

output空の文字列に初期化します。

var output = "";

に値がない場合はinput、代わりに空の文字列が返されますundefined

于 2012-07-13T03:48:33.033 に答える
0

初期化されていない varoutputには実際に値がありますundefined

変数出力; // 出力の値は未定義
出力 += "2"; // 未定義 + "2" -> "未定義 2"
于 2012-07-13T04:00:22.613 に答える