2013-08-22 10 views
1

Я создаю форму с использованием HTML с JQuery mobile, чтобы форма могла использоваться на мобильных устройствах.Установите флажок, если он установлен

У меня есть форма экспорта в CSV по электронной почте. Однако запись в CSV-файл не возникает, если флажки не отмечены.

Могу ли я использовать функции JQuery, чтобы вытащить значения из проверяемых флажков, используя значение от метки, и пометить непроверенные коробки как Null или как Space, так что, когда я импортировать их в Excel он замечает значения не проверены?

<label for="question4" class="input"> 4. What language (s) are you currently using? </label> 
<fieldset data-role="controlgroup"> 
    <legend>Multi select:</legend> 
    <input type="checkbox" name="checkbox-1" id="checkbox-1" class="custom" value="english"/> 
    <label for="checkbox-1"> English</label> 
    <input type="checkbox" name="checkbox-2" id="checkbox-2" class="custom" /> 
    <label for="checkbox-2">French</label> 
    <input type="checkbox" name="checkbox-3" id="checkbox-3" class="custom" /> 
    <label for="checkbox-3">Spanish</label> 
    <input type="checkbox" name="checkbox-4" id="checkbox-4" class="custom" /> 
    <label for="checkbox-4">Brazilian Portuguese</label> 
    <input type="checkbox" name="checkbox-5" id="checkbox-5" class="custom" /> 
    <label for="checkbox-5">Italian</label> 
    <input type="checkbox" name="checkbox-6" id="checkbox-6" class="custom" /> 
    <label for="checkbox-6">German</label> 
    <input type="checkbox" name="checkbox-7" id="checkbox-7" class="custom" /> 
    <label for="checkbox-7">Japanese</label> 
</fieldset> 
</br> 

Если в JQuery нет способа сделать что-то в PHP? Поскольку я использую PHP для заполнения CSV-файла.

Будет ли какая-либо форма, если заявление, которое говорит:

if checkbox = yes then pull value from <label> 

ответ

8

Изменить свой HTML и дать атрибут name для всех флажков, например, так:

<form action="" method="post"> 
<label for="question4" class="input"> 4. What language (s) are you currently using? </label> 
<fieldset data-role="controlgroup"> 
<legend>Multi select:</legend> 
<input type="checkbox" name="checkbox[]" id="checkbox-1" class="custom" value="english"/> 
<label for="checkbox-1"> English</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-2" class="custom" /> 
<label for="checkbox-2">French</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-3" class="custom" /> 
<label for="checkbox-3">Spanish</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-4" class="custom" /> 
<label for="checkbox-4">Brazilian Portuguese</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-5" class="custom" /> 
<label for="checkbox-5">Italian</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-6" class="custom" /> 
<label for="checkbox-6">German</label> 
<input type="checkbox" name="checkbox[]" id="checkbox-7" class="custom" /> 
<label for="checkbox-7">Japanese</label> 
</fieldset> 
</br> 
<input type="submit" name="submit"> 
</form> 

После того, как форма была отправлена, атрибуты имени будут переданы как массив, и они будут доступны с использованием той же переменной. Теперь вы можете использовать isset(), чтобы проверить, является ли конкретный элемент был установлен:

if(isset($_POST['checkbox'])) { 
    print_r($_POST); //print all checked elements 
} 

Если вы хотите, чтобы получить количество флажков, которые были проверены, вы можете использовать count():

$number = count($_POST['checkbox']); 

Примечание: В настоящее время только первый элемент имеет атрибут value. Вам нужно будет добавить его для остальных флажков, чтобы он работал правильно.

Надеюсь, это поможет!

+0

Это действительно полезно! Я хотел знать, есть ли у меня способ не добавлять имя и просто использовать то, что у меня есть? – user1292136

+0

@ user1292136: Конечно, вы можете. Это только рекомендуемая практика, но если вы этого хотите, наверняка это можно сделать. Что-то вроде 'if (isset ($ _ POST ['checkbox-1']) {...}' должно работать. –

+0

это фантастика! И это потянет за значение метки?поэтому, если у меня будет выбран «английский, итальянский и японский», тогда он будет печатать английский, итальянский, японский? – user1292136

0

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

How to check whether a checkbox is checked in jQuery?

Но в основном вы хотите сделать что-то вроде ниже, чтобы проверить его значение:

if ($("#element").is(":checked")) { 
    alert("I'm checked"); 
} 
+0

Спасибо за ваш быстрый ответ! Поэтому, используя этот оператор if, мне нужно будет сделать цикл, чтобы подсчитать, сколько флажков проверено? Могу ли я сделать универсальную команду, чтобы пройти через всю форму, а затем ввести ее в .csv, я думаю, что сейчас меня путают. – user1292136

+0

Взгляните на официальную документацию здесь: http://api.jquery.com/checked-selector/ Но в основном посмотрите на мой jsfiddle здесь, он должен делать то, что вы хотите: http://jsfiddle.net/fdCba/ – Mark

+0

Большое вам спасибо, а также ответ выше был настолько полезен! – user1292136

Смежные вопросы