Forms Yii引导使用模式按钮在模式窗口内提交表单
我正在尝试使用模式页脚中的模式按钮从模式窗口内部提交表单。 表单本身通过ajax从链接(控制器/操作)加载 为了更清楚,我附上了这张照片: 这是模式的代码:Forms Yii引导使用模式按钮在模式窗口内提交表单,forms,yii,modal-dialog,yii-booster,Forms,Yii,Modal Dialog,Yii Booster,我正在尝试使用模式页脚中的模式按钮从模式窗口内部提交表单。 表单本身通过ajax从链接(控制器/操作)加载 为了更清楚,我附上了这张照片: 这是模式的代码: <?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>'modal')); ?> <div class="modal-header"> <a class="close" data-dismiss="modal"
<?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>'modal')); ?>
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h4>Client Ticket Status Update</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<?php $this->widget('bootstrap.widgets.TbButton', array(
'buttonType'=>'ajaxSubmit',
'type'=>'primary',
'label'=>'Save changes',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
<?php $this->widget('bootstrap.widgets.TbButton', array(
'label'=>'Close',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
</div>
<?php $this->endWidget(); ?>
$("a[data-toggle=modal]").click(function(){
var target = $(this).attr('data-target');
var url = $(this).attr('href');
if(url){
$(target).find(".modal-body").load(url);
}
});
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'client-ticket-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required. </p>
<?php echo $form->errorSummary($ticket); ?>
<div>
<?php echo $form->labelEx($ticket,'sent_to'); ?>
<?php echo $form->textField($ticket,'sent_to'); ?>
<?php echo $form->error($ticket,'sent_to'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'courier'); ?>
<?php echo $form->textField($ticket,'courier'); ?>
<?php echo $form->error($ticket,'courier'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'awb'); ?>
<?php echo $form->textField($ticket,'awb'); ?>
<?php echo $form->error($ticket,'awb'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'awb_date'); ?>
<?php echo $form->textField($ticket,'awb_date'); ?>
<?php echo $form->error($ticket,'awb_date'); ?>
</div>
<div class="buttons">
<?php echo CHtml::submitButton($ticket->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
这是表单视图:
<?php $this->beginWidget('bootstrap.widgets.TbModal', array('id'=>'modal')); ?>
<div class="modal-header">
<a class="close" data-dismiss="modal">×</a>
<h4>Client Ticket Status Update</h4>
</div>
<div class="modal-body">
</div>
<div class="modal-footer">
<?php $this->widget('bootstrap.widgets.TbButton', array(
'buttonType'=>'ajaxSubmit',
'type'=>'primary',
'label'=>'Save changes',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
<?php $this->widget('bootstrap.widgets.TbButton', array(
'label'=>'Close',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
</div>
<?php $this->endWidget(); ?>
$("a[data-toggle=modal]").click(function(){
var target = $(this).attr('data-target');
var url = $(this).attr('href');
if(url){
$(target).find(".modal-body").load(url);
}
});
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'client-ticket-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required. </p>
<?php echo $form->errorSummary($ticket); ?>
<div>
<?php echo $form->labelEx($ticket,'sent_to'); ?>
<?php echo $form->textField($ticket,'sent_to'); ?>
<?php echo $form->error($ticket,'sent_to'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'courier'); ?>
<?php echo $form->textField($ticket,'courier'); ?>
<?php echo $form->error($ticket,'courier'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'awb'); ?>
<?php echo $form->textField($ticket,'awb'); ?>
<?php echo $form->error($ticket,'awb'); ?>
</div>
<div>
<?php echo $form->labelEx($ticket,'awb_date'); ?>
<?php echo $form->textField($ticket,'awb_date'); ?>
<?php echo $form->error($ticket,'awb_date'); ?>
</div>
<div class="buttons">
<?php echo CHtml::submitButton($ticket->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
带*的字段是必需的
非常感谢您的帮助。如果您需要更多信息,请询问。只需在您不想显示的另一个屏幕上触发单击事件,也可以先隐藏它 更改模型页脚处的代码,如下所示:
<div class="modal-footer">
<?php $this->widget('bootstrap.widgets.TbButton', array(
'type'=>'primary',
'label'=>'Save changes',
'url'=>'#',
'htmlOptions'=>array('onclick' => '$("#formID").submit()'),
)); ?>
<?php $this->widget('bootstrap.widgets.TbButton', array(
'label'=>'Close',
'url'=>'#',
'htmlOptions'=>array('data-dismiss'=>'modal'),
)); ?>
第一次回复并没有解决我在提交时关闭模式表单的问题。对于其他有问题的人,我必须在CActiveForm中启用客户端验证
结果是这样的:
$form = $this->beginWidget(
'CActiveForm',
array(
'id' => 'feature-form',
'enableAjaxValidation' => true,
'enableClientValidation' => true,
'clientOptions' => array(
'validateOnSubmit' => true,
'validateOnChange' => true,
'validateOnType' => true
)
)
);
希望这能对我的后援有所帮助 你任务栏上的那个游戏是什么?嗨,这里是战场4。)对了,这是一款很棒的游戏。它帮了我Raven_uu007,谢谢。你给了我一个想法,它工作得非常好。在我的例子中,我使用了一个类名来提交表单,因为我想用一个模式来显示和提交多个表单。你太棒了,谢谢!