Установите флажок, введя его идентификатор - PullRequest
0 голосов
/ 02 августа 2011

Есть ли способ установить флажок без галочки, просто получив его идентификатор?

У меня много флажков jquery, и я просто хочу знать, возможно ли, что, просто введя свой идентификатор в текстовое поле, он пройдет через все мои флажки, используя каждый из них, и сравнит введенный текст и его идентификатор.Затем проверил его, если он найден.

Давайте просто скажем, что у меня в html есть текстовое поле, несколько флажков и кнопка.

<div id = 'fCheck'> 
  <input type="checkbox" id="mango" value="mango" /> <label>MANGO</label><br>
  <input type="checkbox" id="santol" value="santol" /> <label>SANTOL</label><br>
  <input type="checkbox" id="guava" value="guava" /> <label>GUAVA</label><br>
  <input type="checkbox" id="lomboy" value="lomboy" /> <label>LOMBOY</label><br>
  <input type="checkbox" id="apple" value="apple" /> <label>APPLE</label><br>
  <input type="checkbox" id="orange" value="orange" /> <label>ORANGE</label><br>
</div>

Любая идея о том, каксделай это?Демо будет с благодарностью.

Ответы [ 5 ]

1 голос
/ 02 августа 2011
<div id = 'fCheck'> 
  <input type="checkbox" id="mango" value="mango" /> <label>MANGO</label><br>
  <input type="checkbox" id="santol" value="santol" /> <label>SANTOL</label><br>
  <input type="checkbox" id="guava" value="guava" /> <label>GUAVA</label><br>
  <input type="checkbox" id="lomboy" value="lomboy" /> <label>LOMBOY</label><br>
  <input type="checkbox" id="apple" value="apple" /> <label>APPLE</label><br>
  <input type="checkbox" id="orange" value="orange" /> <label>ORANGE</label><br>
</div>

<input id="checkTxt" type="textbox" />
<input id="checkBtn" type="button" value="check 'em" />

$("#checkBtn").click(function(){
  $("#" + $("#checkTxt").val())[0].checked = true;
})

для тех палок в грязи, которые не хотят использовать .prop, я думаю>.>

1 голос
/ 02 августа 2011

Попробуйте это

 $("input:checkbox").each(function(){
         $(this).attr("checked", $(this).attr("id") == $("textBoxSelector").val()?true:false);
    });
1 голос
/ 02 августа 2011

По сути, вам нужен этот фрагмент, чтобы поставить галочку.

$('#apple').prop('checked', true);

только в jQuery 1.6+. Чтобы также получить его из текстовой области, сделайте что-то вроде этого:

$('.inputclass').keyup(function() {
    $('#' + $(this).val()).prop('checked', true);
});

Вот оно в действии, вы захотите настроить его под свои нужды: http://jsfiddle.net/nwYj5/1/

0 голосов
/ 02 августа 2011

Хорошо, здесь ваш пример

Я добавил текстовое поле, чтобы вы могли ввести пользовательский идентификатор:

<div id = 'fCheck'> 
  <input type="checkbox" id="mango" value="mango" /> <label>MANGO</label><br>
  <input type="checkbox" id="santol" value="santol" /> <label>SANTOL</label><br>
  <input type="checkbox" id="guava" value="guava" /> <label>GUAVA</label><br>
  <input type="checkbox" id="lomboy" value="lomboy" /> <label>LOMBOY</label><br>
  <input type="checkbox" id="apple" value="apple" /> <label>APPLE</label><br>
  <input type="checkbox" id="orange" value="orange" /> <label>ORANGE</label><br>
</div>

<input type="text" id="userInput"/>

А вот и jquery (1.6)

$(function() {
    $("#userInput").keyup(function(e) {   
        if(e.keyCode === 13) {
            var checkbox = $("#" + $(this).val());
            checkbox.prop('checked', !checkbox.is(":checked"));
        }
    });      
});

Если вы хотите использовать jQuery 1.5, вам нужно изменить checkbox.prop на checkbox.attr ('флажок', 'проверен')

0 голосов
/ 02 августа 2011

Учитывая <input type=text id='checkMe' value=''> вы можете определить обработчик события

$('#checkMe').live("keyup", function(){
   var id = this.value;
   $("#"+ id).attr("checked",true);
});

Обратите внимание, что если вы используете jquery 1.6+, вы можете использовать prop вместо attr.

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