2

こんにちは、動的な方法で ID を送信しようとしています。コードは次のとおりです。

function formsub(val){
    val2 = "form#" + val.toString() + " :input";
    val3 = "form#formmain :input";
    $(val3).each(function () {
        var input = $(this);
        alert($(this).val());
    });
}

誰かがフォームの送信ボタンをクリックすると、これが呼び出されますformsubが、問題が発生し、エラーが発生します:

Uncaught exception: Syntax error , unrecognized expression ''

使用しようとしましval3たが、正常に動作していますが、使用するval2とエラーが発生しますが、値は同じです。

<form id='formmain' method='post' onsubmit='formsub(this.id)'>
    <label>Name</label>
    <input type='textbox' required />
    <span style='color:red;'>*</span>
    <br/>
    <label>Male</label>
    <input type='radio' required />
    <span style='color:red;'>*</span>
    <br/>
    <label>Female</label>
    <input type='radio' required />
    <span style='color:red;'>*</span>
    <br/>
    <input type='submit' />
    <br/>
</form>

上記のコードはフォーム用です。

前もって感謝します

4

6 に答える 6

2

これを置き換えます:

val2 = "form#" + val.toString() + ": input";  // form#formmain: input

これとともに:

val2 = "form#" + val.toString() + " :input";  // form#formmain :input

また、IDform#IDは一意であると想定されているため、次のように の代わりに ID を使用できます。

val2 = "#" + val.toString() + " :input";      // #formmain :input

また、次のように js を変更できます。

function formsub(val) {
    val2 = "#" + val.toString() + " :input";
    val3 = "#formmain :input";
    $(val2).each(function () {
        alert(this.value);
    });
}
于 2013-06-12T11:31:41.117 に答える
2

使ってみて

val2="form#"+val+" :input";

これは役に立ちましたか?

于 2013-06-12T11:31:59.290 に答える
2

コードを分析したところ、val2 と val3 にわずかな違いがあることがわかりました。

val2 を次のように置き換えます。

val2="form#"+val.toString()+" :input";

スペースを忘れたので。

于 2013-06-12T11:32:07.310 に答える
2

:との間にスペースをinput入れないでください:input

function formsub(val){
    val2="form#" + val.toString() + ":input"; // no space between : and input
    val3="form#formmain :input";
    $(val3).each(function(){
        var input = $(this);alert($(this).val());   
    });
}
于 2013-06-12T11:32:25.813 に答える