我有一个包含小表单的jQuery UI对话框。提交表单时,它会关闭对话框。如果表单正确完成,这样就可以了,但如果不是验证消息,那么在这种情况下我需要对话框保持打开状态。
我遇到的问题是我使用Webassist的Dreamweaver扩展来编写用于验证的php并调用数据库,该数据库插入由SUBMIT按钮触发的表单数据。如果表单有错误,我会以某种方式阻止提交按钮关闭对话框。
这是包含来自Dreamweaver扩展程序的预构建php代码的表单。
<form method="post" name="request" id="request" class="form-horizontal">
<div class="control-group">
<label for="firstname" class="control-label">First Name</label>
<div class="controls">
<input name="firstname" type="text" class="input-large <?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "1" . ",") !== false || "1" == "")) {
if (!(false)) {
?>
fail
<?php //WAFV_Conditional home.php home_946(1:)
}
}
}?>" id="firstname" value="<?php echo(ValidatedField("home_946","firstname")) ?>"/>
<?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "1" . ",") !== false || "1" == "")) {
if (!(false)) {
?>
<p class="show-if"> Your first name is required </p>
<?php //WAFV_Conditional home.php home_946(1:)
}
}
}?>
</div>
</div>
<div class="control-group">
<label for="surname" class="control-label">Surname</label>
<div class="controls">
<input name="surname" type="text" class="input-large <?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "2" . ",") !== false || "2" == "")) {
if (!(false)) {
?>
fail
<?php //WAFV_Conditional home.php home_946(2:)
}
}
}?>" id="surname" value="<?php echo(ValidatedField("home_946","surname")) ?>">
<?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "2" . ",") !== false || "2" == "")) {
if (!(false)) {
?>
<p class="show-if"> Your surname is required </p>
<?php //WAFV_Conditional home.php home_946(2:)
}
}
}?>
</div>
</div>
<div class="control-group">
<label for="email" class="control-label">Email</label>
<div class="controls">
<input name="email" type="text" class="input-large <?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "3" . ",") !== false || "3" == "")) {
if (!(false)) {
?>
fail
<?php //WAFV_Conditional home.php home_946(3:)
}
}
}?>
<?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "4" . ",") !== false || "4" == "")) {
if (!(false)) {
?>
fail
<?php //WAFV_Conditional home.php home_946(4:)
}
}
}?>" id="email" value="<?php echo(ValidatedField("home_946","email")) ?>">
<?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "3" . ",") !== false || "3" == "")) {
if (!(false)) {
?>
<p class="show-if"> Your email is required </p>
<?php //WAFV_Conditional home.php home_946(3:)
}
}
}?>
<?php
if (ValidatedField('home_946','home_946')) {
if ((strpos((",".ValidatedField("home_946","home_946").","), "," . "4" . ",") !== false || "4" == "")) {
if (!(false)) {
?>
<p> This is not a valid email address </p>
<?php //WAFV_Conditional home.php home_946(4:)
}
}
}?>
</div>
</div>
<input type="submit">
</form>
答案 0 :(得分:0)
您需要在JavaScript中验证它(因此弹出/模态不会重新加载),您也可以使用AJAX进行一些PHP验证。
这是一个类似于你想要的jQuery UI示例。
http://jqueryui.com/dialog/#modal-form
如果您在查看之后仍然卡住了,那么请发布更多代码,我会看看。
答案 1 :(得分:0)
如果表单未正确完成,您可以在错误消息(它将重新打开对话框)之前添加$('#info-request').trigger('click');
。