2013-06-04 3 views
0

Я фактически делаю создание формы опроса (аналогично securityymonkey). Есть столбец, в котором вы можете выбрать, должен ли этот вопрос быть обязательным полем или нет. И оттуда будет проведена проверка для выбранных полей, которые вы просто отметили при создании формы.выборочные поля для проверки формы jQuery

Итак, теперь мой вопрос: обязательные поля, как вам нравится, так что это не исправлено.

Как я могу написать jquery для проверки, чтобы он проверял выбранные поля в соответствии с обязательным требованием?

Вот пример моих кодов того, что я сделал до сих пор. Он проверяет только одно из полей. Но если человек, создавший форму, решает иметь более одного обязательного поля, он не проверяет следующий.

<?php 
$vQuery = "SELECT * FROM scFormLayout WHERE surveyID = '$id'"; 
$vResult = sqlsrv_query($conn, $vQuery); 

while ($value = sqlsrv_fetch_array($vResult)) { 
    $vID = $value['id']; 
    $qnsID = 'qns'.$vID.'[]'; 
    $compulsory = $value['compulsory']; 
    $vQuestion = $value['question']; 

if ($compulsory == 'Compulsory') { 
?> 
    <script type="text/javascript" language="javascript"> 
     $(document).ready(function() { 
      // 1. prepare the validation rules and messages. 
       var rules = {"<?php echo $qnsID; ?>": "required"}; 
       var messages = {"<?php echo $qnsID; ?>": "<?php echo $vQuestion; ?> is required"}; 
      // 2. Initiate the validator 
       var validator= new jQueryValidatorWrapper("Form",rules, messages); 
      // 3. Set the click event to do the validation 
       $("#btnValidate").click(function() { 
        if (!validator.validate()) 
         return; 
        }); 
       }); 

    </script> 
<?php } } 
sqlsrv_free_stmt($vResult); ?> 
+0

Поскольку вы работаете document.ready несколько раз, и он будет рассматривать только последний. –

+0

Но если я переведу php-коды на document.read, это даже не сработает. T_T любая идея, как мне отформатировать его так, чтобы он работал ...? Спасибо .. – user2376259

+0

@ManishJangir jQuery запускает все обработчики document.ready(), а не только последний. – Barmar

ответ

0

Лучший способ сделать это было бы добавить класс «необходимый» для каждого вопроса (предполагается, потребуется) в цикле в то время.

Затем просто используйте jquery.validate в своей форме под отдельным тегом скрипта внутри функции document.ready(). Дайте мне знать, если это поможет или вам нужна дополнительная информация.

--- Редактировать --- Например, в вашем случае, если вы задаете вопросы, поступающие из базы данных, пользователю в цикле while, для некоторых вопросов у вас есть обязательное значение, заданное как «Обязательное». Теперь вы хотите, чтобы этот вопрос проверялся только в соответствии с требованиями jquery. Затем ниже, как это сделать.

enter code here 

<?php 
while($res = $results) { 
    echo $res['question'].'<br/>'; 
    if($res['compulsory'] = 'Compulsory') 
     echo '<input name = "any_name" class="required">'; 
    else 
     echo '<input name = "any_name">'; 
} 
?> 
<script> 
$(document).ready(function() { 

$('#myForm').validate(); 

}) 
</script> 

Надеюсь, что информации достаточно.

+0

привет ... не возражаете ли вы дать некоторые примеры или руководство для меня, потому что я совершенно новый для jquery .. T_T спасибо! – user2376259

+0

Hi Sure, Я отредактирую свой ответ выше. – tornados

+0

Хммм, я понимаю, как работают коды, но поскольку тип ввода моих вопросов также избирательный, вот образец распечатки вопросов. if ($ input == 'Множественный выбор (только один ответ) [Radio Button]') { ?>
так что мне нужно использовать, если для каждого входа? или есть другой способ сделать это? >. <;; – user2376259

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