Как получить значение флажка для конкретной опции, используя jquery / javascript? - PullRequest
0 голосов
/ 14 февраля 2012

В моем приложении Android для телефона, я добавил к нему вопросы и соответствующие опции, которые динамически отмечены в div. Есть 5-6 вопросов с 3-4 флажками в каждом. Но моя проблема в том, что мне нужно получить значение флажка для конкретного вопроса, а не для полного флажка в div. Пожалуйста, помогите мне. Спасибо заранее.

function list(results) {
    for (i = 0; i < results.rows.length; i++) {
        $("#div").append("<li>" + results.rows.item(i).ques + "<br/>" + "</li>");
        var optiontypearray = new Array();
        var arr = results.rows.item(i).option;
        var optiontypearray = arr.split(" ");

        for (var j = 0; j < optiontypearray.length; j++) {
            $("#div").append("<input  id='chk'  name='ckbox' value='" + optiontypearray[j] + "'  type='checkbox'/>" + optiontypearray[j] + "<br/>");
        }

    }
    $("#button").append("<input type='button' value='" + submitbutton + "' onclick='submitanswer()'/>");
} /** while clicking submit button*/

function submitanswer() {

    $('li').each(function(index) {

        var text = $(this).text();
        alert(text);
        alert(index + ': ' + $(this).text());
        if (index == 0) {
            alert("s");
            $(":checkbox:checked").each(function(index, text) {
                alert(text);
                alert(index + ': ' + $(this).text());
                var a = $(this).val();
                alert(a);

            });
        }
    });
}
/**html*/
 <div id="div"></div>
 <div id="button">

Ответы [ 3 ]

2 голосов
/ 14 февраля 2012
While I'm not sure about exactly what you want to accomplish, this bit of code worked for me.

<select id="mySelect" multiple="multiple">
  <option value="1">First</option>
  <option value="2">Second</option>
  <option value="3">Third</option>
  <option value="4">Fourth</option>
</select>

<script type="text/javascript"> 
$(document).ready(function() {
  if (!$("#mySelect option:selected").length)
    $("#mySelect option[value='3']").attr('selected', 'selected');
});
</script>
1 голос
/ 14 февраля 2012

в вашей функции submitanswer у вас есть jquery для каждого оператора.элементы, которые вы ищете, должны быть

$(':checked').each...

Вторым аргументом на самом деле является элемент, а не «текст».Например,

$(":checked").each(function(index, el)...

Чтобы получить «текст» для элемента, используйте

$(el).html()

, хотя вы можете использовать $ (this) .html. Мне легче читать и избежать ошибок при использовании.$ (el)

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

<div class="questions">
 <label for="question-1">Do you like ice-cream?</label>
 <input type="checkbox" name="question-1" />

 <label for="question-2">Do you want more?</label>
 <input type="checkbox" name="question-2" />
</div>

Теперь вы можете найти вопросы и ответы следующим образом.

var $questions = $('label'), $answers = $(':checked');

$answers.each(function(index, el) {
 alert($questions.eq(index).html() + ' : ' + $(el).val());
});
0 голосов
/ 14 февраля 2012

Вы можете создать функцию, подобную этой, чтобы увидеть, установлен флажок с некоторым значением или нет. Я не знаю, если это оптимально, но это должно работать: :)

function isChecked(chkValue) {
        return $("input[type='checkbox']", '#div').filter(function (index) {
            return ($(this).attr('value') == chkValue);
        }).is(':checked');
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...