我通过此函数使用ajax发送活动表单
public function Link()
{
$id=$this->params['id'];
$url=$this->params['url'];
$dviId=$this->params['divId'];
$url=Yii::$app->urlManager->createAbsoluteUrl($url);
$js2="$('#".$id."').on('click', function() { $.ajax({url: '".$url."',type: 'POST',success : function(res){ $('#".$dviId."').html(res);}});});";
$view = $this->getView();
AjaxAsset::register($view);
if ($js2 !== '') {
$view->registerJs($js2);
}
return ;
}
如果有任何其他事件发送表单
,则要显示错误答案 0 :(得分:1)
如果您使用的是javascript并希望对表单进行初始验证,则jquery中有一个插件可以进行客户端验证。
http://jqueryvalidation.org/
您还可以在文本标签中使用“required”属性进行一些初始检查。更多信息可以在这里找到:
http://www.w3schools.com/tags/att_input_required.asp
希望这有点帮助。
答案 1 :(得分:1)
您还可以在表单中将enableAjaxValidation设置为true
。
文档中有example(参见控制器部分)。
答案 2 :(得分:1)
public function Link()
{
$id=$this->params['id'];
$url=$this->params['url'];
$dviId=$this->params['divId'];
if(isset($this->params['confirm'])) {
$confirm = "if(confirm('".$this->params['confirm']."')){";
$endConfirm = "}";
}
else
{
$confirm = "";
$endConfirm = "";
}
$url=Yii::$app->urlManager->createAbsoluteUrl($url);
$js2="$('#".$id."').on('click', function() {".$confirm."$.ajax({url: '".$url."',type: 'POST',beforeSend: function(){ $('body').addClass('wait');},complete: function(){ $('body').removeClass('wait');},success : function(res){ $('#".$dviId."').html(res);}});".$endConfirm."});";
$view = $this->getView();
AjaxAsset::register($view);
if ($js2 !== '') {
$view->registerJs($js2);
}
return ;
}