1

チェックボックスが選択されていない場合でも、値が返されます。Ajax リクエストを介してフォームを渡し、戻り値を出力していますが、チェックされているかチェックされていない同じ結果です。Issetも正しく機能していません。

<input type="checkbox" value="Agree" id="siteAgreement">

if(!isset($siteAgreement) || !$siteAgreement || $siteAgreement != "Agree"){
//////Unchecked
}
4

4 に答える 4

3

変化する

siteAgreement = $("#siteAgreement").value;

このようなものに:

siteAgreement = $("#siteAgreement").is(':checked') ? $("#siteAgreement").val() : null;

ただし、javascriptがオフになっているブラウザでもサイトを使用できるように、name属性も追加する必要があります。

また、フォームからリクエストを自動的に生成するコード(jquery.formなど)を使用できるため、フォームを変更するたびにjavascriptを更新する必要はありません。

ここでの例:http://jsfiddle.net/RhasK/

于 2013-01-11T19:07:57.827 に答える
0
if($_POST["siteAgreement"] !== "Agree") {
//not checked
}

うまくいきます

于 2013-01-11T18:10:54.033 に答える
0

設定されているかどうかのみを確認する必要があります。

if(!isset($_POST['siteAgreement'])){
//then it is unchecked
}

また、入力に名前を付けていません。あなたは置く必要があります...

<input type="checkbox" name="siteAgreement" value="Agree" id="siteAgreement">

PHP でアクセスするには、名前が必要です。

于 2013-01-11T18:12:20.617 に答える
0

ここでこれを試してください:

 if(!isset($_POST['siteAgreement']) || !$_POST['siteAgreement'] || $_POST['siteAgreement'] != "Agree"){
 //////Unchecked
 }

以前に変数を抽出していない限り、$siteAgreement は設定されません。を使用$_POST['nameofelement']してデータにアクセスできます。

于 2013-01-11T18:09:04.737 に答える