2

これを機能させようとしましたが、成功していません。私はjsの初心者なので、助けようとするときはそのことを覚えておいてください。このすべてのコードで何が起こっているのかまだ理解できないので、詳しく説明していただく必要があります。

私は仕事をしようとしていることが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">


これが私の2番目の問題です。チェックボックスは、グループではないことを除いて、ラジオ ボタンとまったく同じです。各チェックボックスには独自の値があります。ここでも 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がわからないため、これ以上トラブルシューティングすることはできません.

編集:

複製している元の投稿を見つけました。ここにあります

4

3 に答える 3

2

サーバーで何が起こるか、クライアントで何が起こるかを混同しているようです。あなたが参照している項目オブジェクトは何ですか?

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

通常、作成しているコードは次のようになります (サーバー側の言語とフレームワークによって異なります)。

<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 プロキシとして機能し、サーバーとの間で送受信されるものを正確に確認できます。

于 2009-03-27T08:00:22.527 に答える
0

文字列「checked」ではなく、javascript の「checked」プロパティを true/false に設定する必要があります。

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

于 2009-03-27T09:11:45.523 に答える
-1

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

それ以外の...

$("checkbox#rptDly")

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

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

ただし、チェックボックスにはそれぞれ固有のid属性があるため、単純に...を使用できます。

$("#rptDly")

ラジオボタンはすべて同じ名前またはIDを持っているため、少し注意が必要です。これらはvalue属性で区別する必要があります-これに対する正しい解決策を調査し、あなたに戻ります。

JQueryドキュメントのWebサイトでJQueryセレクターの構文をブラッシュアップするか、このテーマに関する優れた本を 購入してください

于 2009-03-27T08:21:10.917 に答える