【发布时间】:2013-06-04 05:55:17
【问题描述】:
我实际上是在创建一个调查表(类似于surveymonkey)。有一列您可以在其中选择您是否希望此问题成为必填字段。从那里将验证您在创建表单时刚刚勾选的所选字段。
所以现在我的问题是,必填字段如你所愿,所以它不是固定的。
如何编写用于验证的 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); ?>
【问题讨论】:
-
因为你正在运行 document.ready 多次,它只会考虑最后一个。
-
但是如果我将 php 代码移到 document.read 之后它甚至不起作用.. T_T 知道如何格式化它以便以某种方式工作..?谢谢..
-
@ManishJangir jQuery 运行所有 document.ready() 处理程序,而不仅仅是最后一个。
-
你考虑过使用 jquery-validate 插件吗?您可以将
required类添加到所需的输入中。 -
@Barmar 但它会覆盖定义的对象。
标签: php jquery validation