Как включить и выключить флажки и переключатели с помощью JQ - PullRequest
2 голосов
/ 27 марта 2009

Я пытался заставить это работать, но безуспешно. Я настоящий новичок с js, поэтому, пожалуйста, помните об этом, пытаясь мне помочь. Вам придется объяснить это мне, потому что я просто не понимаю, что происходит со всем этим кодом.

У меня есть две вещи, которые я пытаюсь заставить работать. Одним из них является набор переключателей. Эти кнопки представляют собой группу, означающую, что можно отметить только одну радиокнопку. Значения, которые я имею для этих переключателей, равны либо 1, либо 0 и выходят из базы данных.

Вот проблема, с которой я столкнулся. Я могу переключать кнопки и изменять значения в БД, но когда json вызывает данные из базы данных, кнопки не изменяются для пользователя. Например: если я изменил кнопку A на true или проверил, значение val в db изменится на 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, я больше не могу это устранить.

EDIT:

Я нашел оригинальный пост, который дублирую. Здесь .

Ответы [ 3 ]

2 голосов
/ 27 марта 2009

Кажется, вы перепутали, что происходит на сервере, и что происходит на клиенте. К какому объекту предмета вы обращаетесь?

Также это tag # id, где вы используете tag # name в своем первом примере кода.

Обычно код, который вы пишете, выглядит примерно так (в зависимости от языка сервера и структуры):

<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);

Если флажок установлен, имя = значение отправляется на сервер, а если он не установлен, на сервер ничего не отправляется. Если вы хотите посмотреть, куда и куда отправляется, я рекомендую вам зайти в Google и загрузить Fiddler2. Он работает как http-прокси и позволяет точно видеть, что отправляется на сервер и с сервера.

0 голосов
/ 27 марта 2009

Вам нужно установить свойство "checked" в javascript на true / false, а не на строку "checked".

checked="checked" - это соглашение HTML для указания логических свойств. В JavaScript DOM это преобразуется в истинное логическое значение

0 голосов
/ 27 марта 2009

Синтаксис, который вы используете для селекторов jquery, немного неправильный.

Вместо ...

$("checkbox#rptDly")

... синтаксис для доступа к флажкам ...

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

Но, поскольку у каждого флажка есть свой уникальный атрибут id, вы можете просто использовать ...

$("#rptDly")

Радиокнопки немного сложнее, поскольку все они имеют одинаковые имена или идентификаторы. Их следует различать по атрибуту value - мы найдем правильное решение и свяжемся с вами.

Уточните синтаксис селектора JQuery на веб-сайте документации JQuery Или купить хорошую книгу на эту тему

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...