如何在提交内部表单时停止关闭jQuery对话框

时间:2014-10-30 12:39:08

标签: jquery html forms jquery-ui-dialog

我有一个包含小表单的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>

2 个答案:

答案 0 :(得分:0)

您需要在JavaScript中验证它(因此弹出/模态不会重新加载),您也可以使用AJAX进行一些PHP验证。

这是一个类似于你想要的jQuery UI示例。

http://jqueryui.com/dialog/#modal-form

如果您在查看之后仍然卡住了,那么请发布更多代码,我会看看。

答案 1 :(得分:0)

如果表单未正确完成,您可以在错误消息(它将重新打开对话框)之前添加$('#info-request').trigger('click');