【问题标题】:Validate form fields before confim modal and submit form在确认模式之前验证表单字段并提交表单
【发布时间】:2014-05-22 08:19:23
【问题描述】:

我正在尝试在提交表单之前使用 Bootstrap Modal 作为我的确认对话框。但是我想在显示模态之前先验证我的表单。我该怎么做?

这是我迄今为止尝试过的:

<script type="text/javascript">
    $(function(){

        $(".btn-show-modal").click(function(e){ 
            e.preventDefault(); 
            var id = $(this).attr('id'); 
            var modal_id = "dialog-example_"+id; 
            $("#"+modal_id).modal('show'); 
        });

        $(".btn btn-custom").click(function(e) {
            var id = $(this).attr('id');
            var modal_id = "dialog-example_"+id;
            $("#reservationForm").submit();
            $("#"+modal_id).modal('hide');
        });

    });
</script>

<form class="form" method="POST" action="unit-reservation.php" id="reservationForm">
    <div class="form-horizontal">
        <div class="control-group">
            <label class="control-label"><b>Firstname (*):</b></label>
            <div class="controls">
                <input type="text" name="customerfname" required />
            </div>
        </div>
        <div class="control-group">
            <label class="control-label"><b>Middlename (*):</b></label>
            <div class="controls">
                <input type="text" name="customermname" required />
            </div>
        </div>

        <div class="control-group">
            <label class="control-label"><b>Lastname (*):</b></label>
            <div class="controls">
                <input type="text" name="customerlname" required />
            </div>
        </div>

        <div class="control-group">
            <label class="control-label"><b>Email Address (*):</b></label>
            <div class="controls">
                <input type="email" name="customeremailaddress" required />
            </div>
        </div>

        <div class="control-group">
            <label class="control-label"><b>Address:</b></label>
            <div class="controls">
                <input type="text" name="customeraddress"  required />
            </div>
        </div>

        <div class="control-group">
            <label class="control-label"><b>Telephone Number:</b></label>
            <div class="controls">
                <input type="tel" name="customertelnumber"  />
            </div>
        </div>

        <div class="control-group">
            <label class="control-label"><b>Mobile Number:</b></label>
            <div class="controls">
                <input type="number" step="any" min="0" name="customermobilenumber" required /
            </div>
        </div>
    </div>

    <input type="hidden" value="<?php echo $user; ?>" name="user_id">
    <button id="<?php echo $code; ?>" class="btn btn-custom btn-show-modal" data-toggle="modal">Reserve Now</button>          
</form>

<div class="modal hide fade" id="dialog-example_<?php echo $code; ?>">
    <div class="modal-header">
        <h5>Confirm Reservation</h5>
    </div>
    <div class="modal-body">
        <p class="modaltext">Are you sure you want to reserve unit: <?php echo $code; ?>?</p>
    </div>
    <div class="modal-footer">
        <a href="#" data-dismiss="modal" class="btn">No</a>
        <a href="" class="btn btn-custom" id="<?php echo $code ;?>">Yes</a>
    </div>
</div>

【问题讨论】:

  • 先尝试添加return false;在你的功能上
  • 您可以将您的显示模式代码放入验证的成功回调中。
  • @gulty 你好,你能帮我把它放在我的代码中吗?

标签: javascript php jquery forms twitter-bootstrap


【解决方案1】:

问题是当您单击模态按钮时提交表单,因为它与模态锚具有相同的类。

$(".btn-show-modal").click(function(e){ ...
$(".btn btn-custom").click(function(e) {...

您必须为提交的模态锚添加另一个类。

<a href="" class="btn btn-custom btn-submit" id="<?php echo $code ;?>">Yes</a>

并为您的提交点击处理程序调用它:

$(".btn-show-modal").click(function(e){ ...    
$(".btn-submit").click(function(e){}

像这样,提交操作仅由您的模态锚触发。如果您将类用于 css 样式,而将相同的类用于 javascript 选择器,则必须小心。更好的方法是为这些按钮(如果只使用一次)提供一个 id,以便 javascript 可以更快地访问它。并且只为 css 保留 .btn、.btn-custom。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 2015-10-12
    • 2016-12-30
    相关资源
    最近更新 更多