0
我的表單內部是部分地圖,它負責在地圖上生成一些數據。如果主表單字段(瓦片,說明等)沒有填寫,則代無法使用。我希望不僅在按主窗體上的SAVE按鈕時發生了驗證,但是當您單擊包含在局部映射主要形式中的GENERATE按鈕時...我該如何解決該問題?部分驗證
主要形式
<?php
$form = $this->beginWidget(
'VMActiveForm',
array(
'type' => 'horizontal',
'enableAjaxValidation'=>true,
'enableClientValidation'=>true,
'clientOptions'=>array(
'validateOnSubmit'=>true,
'validateOnChange'=>true),
'id' => 'coupon-form',
'htmlOptions' => array('enctype' => 'multipart/form-data'),
'action' => $this->createUrl('campaigns/saveCoupon'),
)
);
Yii::import('application.extensions.CJuiDateTimePicker.CJuiDateTimePicker');
?>
<?= $form->errorSummary($model); ?>
<?=
$form->textFieldRow(
$model,
'title',
array(
'class' => 'span3',
'hint' => 'Fill in a short selling title - max 40 chars, <span id="CouponExt_title_chars_left">40</span> chars left.',
'placeholder' => 'Please enter title of coupon...'
)
);
?>
<script type="text/javascript">
$(function() {
$('#CouponExt_title').VMSymbolCounter({'maxCharsCount': 40, 'counter': $('#CouponExt_title_chars_left')});
});
</script>
<?=
$form->textFieldRow(
$model,
'value',
array(
'class' => 'span3',
'placeholder' => 'Please enter value of coupon...'
)
);
?>
<?=
$form->textAreaRow(
$model,
'description',
array(
'rows' => 10,
'class' => 'span3',
'hint' => 'Short description of your offer. Fill in a short selling title - max 250 chars, <span id="CouponExt_description_chars_left">255</span> chars left.'
)
);
?>
<script type="text/javascript">
$(function() {
$('#CouponExt_description').VMSymbolCounter({'maxCharsCount': 255, 'counter': $('#CouponExt_description_chars_left')});
});
</script>
<? $categories = CHtml::listData($categories, 'id', 'title'); ?>
<?= $form->dropDownListRow($model, 'category_id', $categories); ?>
<? $campaigns = CHtml::listData($campaigns, 'id', 'name'); ?>
<?= $form->dropDownListRow($model, 'campaign_id', $campaigns); ?>
<?=
$form->textFieldRow(
$model,
'amount',
array(
'class' => 'span3',
'placeholder' => 'Please enter number of coupons...',
'disabled' => $model->amount > 0
)
);
?>
<?=
$form->textFieldRow(
$model,
'end_value',
array(
'class' => 'span3',
'placeholder' => 'Please enter number of coupons for end...',
)
);
?>
<?= $form->fileFieldRow($model, 'avatar'); ?>
<div class="controls">
<?=CHtml::image($model->avatar_filename, '');?>
</div>
<?=
$form->textFieldRow(
$model,
'url',
array(
'class' => 'span3',
'placeholder' => 'http://www.yourshop.com',
'hint' => 'Set an URL'
)
);
?>
<?php
$this->renderPartial("partials.map", array(
'model' => $model,
'count' => $count,
));
$this->renderPartial("partials.progress", array(
'model' => $model,
'count' => $count,
));
?>
地圖部分
<?php
/**
* @var CouponExt $model
*/
if(($model->amount > $count) || (!$model->amount)) {
if($model->isNewRecord) {
echo CHtml::button('Set radius', array(
'id' => 'set-radius',
'class' => 'btn',
));
}
echo CHtml::ajaxSubmitButton(
'Generate',
CHtml::normalizeUrl(array('campaigns/saveCoupon')),
array(
'success' => new CJavaScriptExpression("function(data){
if(parseInt(data)) {
$('#CouponExt_id').val(data);
$('#map-block-group').hide();
$('#progress-bar-group').show();
changeProgress();
}}")
),
array(
'class' => 'btn btn-primary',
'id' => 'generate-mines'
)
);
}
?>
</div>
</div>
<div id="map-area">
<input id="search-area" type="text" placeholder="Search address..." />
<div id="google-map-area" class="google-map" style="width: 700px; height: 350px; border: 1px solid #cccccc"></div>
<div class="map-attributes">
<?php
if(($model->amount > $count) || (!$model->amount)) {
echo CHtml::ajaxSubmitButton(
'Generate',
CHtml::normalizeUrl(array('campaigns/saveCoupon')),
array(
'success' => new CJavaScriptExpression("function(data){
if(parseInt(data)) {
$('#CouponExt_id').val(data);
$('#map-block-group').hide();
$('#progress-bar-group').show();
changeProgress();
}}")
),
array(
'class' => 'btn btn-primary',
'id' => 'scatterArea'
)
);
if($model->isNewRecord) {
echo CHtml::button('Clear', array(
'id' => 'clearDotes',
'class' => 'btn'
));
echo CHtml::button('Remove last', array(
'id' => 'removeDotes',
'class' => 'btn'
));
}
}
?>
感謝onclick事件!它的工作... – technobot
接受我的答案作爲一個決定,請 – Alex