2009-03-27 22 views
2

これを動作させようとしましたが、成功していません。私はjsと本当のnoobですので、私を助けようとしているときにそれを念頭に置いてください。私はこのコードを使って何が起こっているのか分からないので、私のためにそれを綴る必要があります。JQでチェックボックスとラジオボタンをオン/オフに切り替える方法

私は仕事をしようとしている2つのことがあります。 1つはラジオボタンのセットです。これらのボタンは、ラジオボタンを1つしかチェックできないことを意味するグループです。これらのラジオボタンの値は1または0で、データベースから出てきます。

ここに私が抱える問題があります。私は、ボタンを切り替えてdbの値を変更することができますが、jsonがデータベースからデータを呼び出すときには、ボタンに変更はありません。たとえば、ボタンAをtrueに変更した場合、またはdbのvalが1に変更された場合、その時点からそのページを表示すると、ボタンAにその旨が反映されます。また、ユーザーがBをチェックすると、db valが0に変更され、ボタンにもその値が反映されます。

実際のボタンをデータベースの値を反映するように切り替える方法がわかりません。ここに私のコードは、これまでです:

else if (item.field == "status" && item.value == "1"){ 
    $("radio#status").attr("checked", "checked"); 
} 

<input type="radio" id="active" name="status" value="1" checked="checked" class="chkbx"> 
<input type="radio" id="inactive" name="status" value="0" class="chkbx"> 


ここに私の第二の問題があります。チェックボックスはラジオボタンとまったく同じですが、グループではありません。各チェックボックスにはそれぞれ独自の値があります。繰り返しますが、0と1を使用していますが、複数のチェックボックスを同時に確認できます。これも同様のコードです。

else if (item.field == "rptDly" && item.value == "1"){ 
    $("checkbox#rptDly").attr("checked", "checked"); 
} 

<input type="checkbox" id="rptDly" name="rptDly" value="1" checked="checked" class="chkbx"> 
<input type="checkbox" id="rptSum" name="rptSum" value="1" checked="checked" class="chkbx"> 
<input type="checkbox" id="rptDtl" name="rptDtl" value="1" checked="checked" class="chkbx"> 

私を導く人はいますか?上記のjsコードに警告を付けると警告が表示されるので、私はそこにはいいと知っていますが、私はjsを知らないので、これ以上問題を解決することはできません。

編集:

私が複製している元の投稿が見つかりました。 hereです。

+0

正確に何が起こると予想されているのかを明確にすることができます。また、データベースとJSの間にすべてのコードを含める場合を除き、データベースについては言及しないでください。問題を絞り込み、質問を直接囲むコードを説明してください。 –

+0

また、これをwikiにしてください。 –

+0

"jsonがデータベースからデータを呼び出すとき" - JSONはデータをエンコードするためのテキスト形式です。データベースには何もできません。 –

答えて

2

サーバー上で何が起こったのか、クライアントで何が起こったのかが混乱しているようです。あなたが参照しているアイテムオブジェクトは何ですか?

また、最初のコード例でtag#nameを使用するtag#idです。

通常、あなたが書いているコードは(サーバーサイド言語andframeworkに応じて)ビットのようになります。<%と%>の間にコードが何かを送信する前に、サーバー上で実行されることを

<input type="checkbox" id="forreferencinginjavascriptandcss" name="tobesenttotheserver" value="1"<% if someboolean then print " checked=\"checked\"" %>> 

注意クライアントに送信します。

あなたはそれがブラウザに送信されています後にラジオボタン/チェックボックスのチェックを外す/確認したい場合は、あなたがそれを行うにはjQueryを使用することができます。

$("input#forreferencinginjavascriptandcss").attr("checked", true); 

または

$("input#forreferencinginjavascriptandcss").attr("checked", false); 

チェックボックスがされた場合チェックすると、name = valueがサーバーに送られ、チェックされていなければ、何もサーバーに送られません。どこに送られるのかを見たい場合は、GoogleでFiddler2をダウンロードしてダウンロードすることをおすすめします。これはHTTPプロキシとして機能し、サーバとの間で送受信される情報を正確に見ることができます。

+0

ああ...だから、チェックされた値を切り替える条件が必要なのですか?それは完璧な意味合いがあります。私は印象に残っていましたが、JQueryが自動的にこれを行いました。ところで、私はサーバー側でPHPを使用しています。 –

-1

jqueryセレクタに使用している構文が少し間違っています。

の代わりに...

$("checkbox#rptDly") 

...チェックボックスにアクセスするための構文は...

$("input:checkbox[name='rptDly']") 

である。しかし、チェックボックス、それぞれが独自のid属性を持っているとして、あなたは可能性があり単純に使用してください...

$("#rptDly") 

ラジオボタンはすべて同じ名前またはIDを持つため、少しトリッキーです。これらはvalue属性で区別する必要があります。正しい解決方法を調べて、あなたに連絡します。

アップあなたのjQueryのセレクタの構文上のブラシあなたは「確認」文字列ではなく、真/ falseにJavaScriptでプロパティを「確認」に設定する必要がJQuery documentation website それともa good book on the subject

+0

お返事ありがとうございます。最後のポスターは、もし私が条件ならばサーバー側が必要だと言った。これは正しいのですか、JQueryが私の操作を処理しますか?私は、彼が言ったことは完璧な意味があることを意味します。私はJQが自動的に私のためにこれを行うかどうか知りたいと思う。 –

+0

私のラジオボタンを確認していただきありがとうございます。 –

+0

元の投稿には2つの問題があります。 最初は、特定のラジオボタンまたはチェックボックスにアクセスして変更するために必要な構文です。 2番目の方法は、データベースの状態をページに反映させる方法です。コードのより完全な例は、開始するのに適しています。 – belugabob

0

を買いに。

checked="checked"は、ブール値のプロパティを指定するためのHTML規約です。 javascriptのDOMでは、これは真のブール値に変換されます

+0

ありがとうございます。私は運がなかったらそれを試みた。私はそれをチェックに戻しましたが、それを再び真に戻します。 –

+0

セレクタの構文も変更しましたか? – belugabob

関連する問題