jquery验证-php嵌入html表单
谁能帮我一下吗?我一直在使用jqueryvalidate来处理html表单,直到我遇到了一个嵌入到php中的html表单的问题 下面的示例使用jquery和jquery验证。 Form1正在验证电子邮件字段。但是,Form3没有验证数字字段(Form3嵌入在php中) 我尝试注释掉所有form1验证,以确保问题不是由多个表单引起的 我还试着从form3的javascript中注释submitHandler,这阻止了form3的提交,所以这告诉我有些东西在工作,只是没有验证form3中的数字字段jquery验证-php嵌入html表单,php,javascript,jquery,html,jquery-validate,Php,Javascript,Jquery,Html,Jquery Validate,谁能帮我一下吗?我一直在使用jqueryvalidate来处理html表单,直到我遇到了一个嵌入到php中的html表单的问题 下面的示例使用jquery和jquery验证。 Form1正在验证电子邮件字段。但是,Form3没有验证数字字段(Form3嵌入在php中) 我尝试注释掉所有form1验证,以确保问题不是由多个表单引起的 我还试着从form3的javascript中注释submitHandler,这阻止了form3的提交,所以这告诉我有些东西在工作,只是没有验证form3中的数字字段
<script>
$(document).ready(function() {
$("#form1").validate( {
errorPlacement: function(error, element) {
error.appendTo( element.parent("span").next("div") );
},
debug:true,
wrapper: "li",
submitHandler: function(){
form.submit();
},
rules: {
email: {required:false, email:true},
},
messages: {
email: "Enter a valid email address",
}
})
$("#form3").validate( {
errorPlacement: function(error, element) {
error.appendTo( element.parent("span").next("div") );
},
debug:true,
wrapper: "li",
submitHandler: function(){
form3.submit();
},
rules: {
quotaLimit: {required:true, number:true},
},
messages: {
quotaLimit: "Enter a valid quota limit",
}
})
});
</script>
<br>
<div class="tab-button-row" style="position:relative;">
<a href="#" class="tab-button" onclick="toggleTab('editUserContent', 'details');">User Details</a>
<a href="#" class="tab-button" onclick="toggleTab('editUserContent','quotas');">Quota and Limits</a>
</div>
<br>
<div id="editUserContent">
<div id="details">
<form id=form1 method=POST
action="index.php?function=edituser&command=save&username=<?php echo $user->{"username"}; ?>"
name=form>
<?php
if ($user->{'authenticationType'} == 0) {
$visible = "";
} else {
$visible = "style='display:none;'";
}
?>
<table class="list">
<tr>
<td colspan=5><b>Edit Details</td>
</td>
<td width=25%><input type=submit value=save></td>
</tr>
<tr>
<td>First Name:</td>
<td>
<input name="fname" value="<?php echo $user->{"fname"};?>">
</td>
<td>Last Name:</td>
<td>
<input name="lname" value="<?php echo $user->{"lname"};?>">
</td>
<td>Email:</td>
<td>
<span>
<input name="email" value="<?php echo $user->{"email"};?>" class='validate'>
</span>
<div></div>
</td>
</tr>
</table>
<br>
<table class="list" <?php echo $visible; ?>>
<tr>
<td colspan=5><b>Password Settings</td>
</td>
<td width=25%><input type=submit value=save></td>
</tr>
<tr>
<td>Set Password</td>
<td><input type=checkbox name=change_password></td>
<td>New Password:</td>
<td><input name="password" type=password></td>
<td>Re-enter Password:</td>
<td><input name="re_password" type=password></td>
</tr>
</table>
</form>
</div>
<div id="quotas">
<?php
$table = new Table();
$name = new Column("Quota Period");
$name->render = function($data, $id)
{
echo $data->{'period'};
};
$desc = new Column("Quota Limit(MB)");
$desc->render = function($data, $id)
{
echo $data->{'quotaLimit'};
};
$owner = new Column("Group Owner");
$owner->render = function($data, $id)
{
if (isset($data->{'owner'})) {
echo "<a href=index.php?function=editgroup&group=" . $data->{'ownerid'} . ">" . $data->{'owner'} . "</a>";
}
};
$reached = new Column("Quota Reached");
$reached->render = function($data, $id)
{
if ($data->{'exceeded'} == true) {
echo "true";
} else {
echo "false";
}
};
$ops = new Column("Operations");
$ops->render = function($data, $id)
{
if (!isset($quotas[$i]->{'owner'})) {
echo "<a href=index.php?function=edituser&command=deletequota&username=" . $_GET['username'] . "&period=";
echo $data->{'period'} . ""aLimit=" . $data->{'quotaLimit'} . ">delete</a>";
}
};
$table->addColumn($name);
$table->addColumn($desc);
$table->addColumn($owner);
$table->addColumn($reached);
$table->addColumn($ops);
$table->setData($quotas);
$table->footerMethod = function($footerArgs)
{
echo" <form id=form3 method=POST action=index.php?function=edituser&command=addquota&username=" . $_GET['username'] . ">";
echo "<tr><td>";
echo "<select name='period'>";
echo "<option>NONE</option>";
echo "<option>DAY</option>";
echo "<option>WEEK</option>";
echo "<option>MONTH</option>";
echo "</select>";
echo "</td>";
echo "<td>";
echo "<span><input name=quotaLimit class='validate' /></span><div></div>";
echo "</td>";
echo "<td></td>";
echo "<td></td>";
echo "<td><input type=submit value='Add/Set'></td></tr>";
echo "</form>";
};
$table->render();
?>
</div>
</div>
<script type="text/javascript">
initToggleTab("editUserContent", "details");
</script>
$(文档).ready(函数(){
$(“#表格1”)。验证({
errorPlacement:函数(错误,元素){
错误.appendTo(element.parent(“span”).next(“div”);
},
是的,
包装纸:“李”,
submitHandler:function(){
表单提交();
},
规则:{
电子邮件:{必需:false,电子邮件:true},
},
信息:{
电子邮件:“输入有效的电子邮件地址”,
}
})
$(“#表格3”)。验证({
errorPlacement:函数(错误,元素){
错误.appendTo(element.parent(“span”).next(“div”);
},
是的,
包装纸:“李”,
submitHandler:function(){
表格3.提交();
},
规则:{
quotaLimit:{必需:真,数字:真},
},
信息:{
quotaLimit:“输入有效的配额限制”,
}
})
});
谢谢你的帮助。通过将表单标记从表外移动到php呈现的位置,解决了此问题:
$table->footerMethod = function($footerArgs)
{
echo "<tr><td>";
echo "<select name='period'>";
echo "<option>NONE</option>";
echo "<option>DAY</option>";
echo "<option>WEEK</option>";
echo "<option>MONTH</option>";
echo "</select>";
echo "</td>";
echo "<td>";
echo "<span><input name=\"quotaLimit\" class=\"validate\" type='text' /></span><div></div>";
echo "</td>";
echo "<td></td>";
echo "<td></td>";
echo "<td><input type=submit value='Add/Set'></td></tr>";
};
echo" <form id=form3 method=POST action=index.php?function=edituser&command=addquota&username=" . $_GET['username'] . ">";
$table->render();
echo "</form>";
$table->footerMethod=函数($footerArgs)
{
回声“;
回声“;
回应“无”;
呼应“日”;
回声“周”;
呼应“月”;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
回声“;
};
回声“;
$table->render();
回声“;
您是否尝试过检查最终HTML的源代码,以查看表单是否如您所期望的那样?尝试使用静态HTML和JavaScript创建一个新的脚本。您需要确定组合的哪一部分不起作用,然后您可以确保PHP输出您需要的内容。结束标记直接位于开始之后。然而,这在Firefox上没有发生,Firefox也没有验证form3。Form3看起来很好,正如上面所示。请在浏览器中发布呈现的HTML,这样我们至少可以复制一些内容。作为提醒,您不能将
标记嵌套在
标记中。还考虑将HTML元素属性值放在W3C推荐的引号之间。我真的试图重现您的问题,但在所有情况下,表单都得到验证。如果你想得到答案,你应该考虑设置一个jsFoDLE。