0
<label class="checkbox inline">
<input type="checkbox" name="Services[]" value="service1"> Service 1
</label>
<label class="checkbox inline">
<input type="checkbox" name="Services[]" value="service2"> Service 2
</label>

$ _POST ['Services']が必要な値を含むPHPの配列にマップされるように、Services[]を使用しています。

ただし、クライアント側では、フォームが(PHPに)送信された後、これらすべてのチェックボックスをオフにする必要もあります。かなり単純なJavascript:(実際のチェックボックスグループの長さは8です)。

for (j=0; j<8; j++){
fields[6][j].checked=false;
}

どこ:

fields[6] = formob.Services[];
formob=document.forms["FooterQuote"];

問題は、Services[]をJavascript配列に入れることができないことです。私は次の方法を使用してみました:(擬似コード、ここでは構文のみが重要です)

var fields=[formob.text1, formob.text2, formob.text3, formob.Services[]];
//Syntax error at Services[]

var fields=new Array(formob.text1, formob.text2, formob.text3, formob.Services[]);
//Syntax error at Services[]

var fields=new Array(formob.text1, formob.text2, formob.text3);
fields.push(formob.Services[]);
//Syntax error at Services[]

そのため、残念ながら、私が知る限り、Services[]をJavascript配列にプッシュすることはできません。

代わりにformob.Servicesを使用してみましたが、これも機能しません。

チェックボックスのname="Services []"構文をJavascript配列で機能させる方法について誰かがアイデアを持っているので、それらをすべて切り替えてチェックを外すことができますか?:)


次のようなチェックボックスに対応する必要があります。

var services = ​document.forms['FooterQuote']['Services​[]']​;

詳細については、この記事を参照してください:ドットと角括弧の表記法

したがって、チェックを外すには、次を使用します。

for (var i = 0; i < services.length; i++) {
    services[i].checked = false;
}
4

2 に答える 2

2

次のようなチェックボックスに対応する必要があります。

var services = ​document.forms['FooterQuote']['Services​[]']​;

詳細については、この記事を参照してください:ドットと角括弧の表記法

したがって、チェックを外すには、次を使用します。

for (var i = 0; i < services.length; i++) {
    services[i].checked = false;
}
于 2012-05-05T23:01:59.473 に答える
1

これは、角括弧表記を使用する必要がある場合です。

できるよ

formob["Services[]"]

また

formob.elements["Services[]"]
于 2012-05-05T23:03:31.220 に答える