刀片形式没有动作或网址

时间:2014-10-18 18:08:54

标签: laravel laravel-4

如何在不生成action属性的情况下通过Blade模板引擎生成表单? 我想为ajax请求生成一个表单。

2 个答案:

答案 0 :(得分:2)

1)如果您不希望表单提交

{{ Form::open(['onsubmit' => 'return false']) }}

2)如果您有ajax功能,可以这样调用

{{ Form::open(['onsubmit' => 'yourAjaxFunction(); return false']) }}

3)如果要将Angular JS指令包含在表单

{{ Form::open(['ng-submit' => 'submit()', 'onsubmit' => 'return false']) }}

答案 1 :(得分:0)

不,实际上无法告诉“表单”构建器省略操作属性。在任何情况下都会设置一些属性,action - 属性就是其中之一。这是函数的相关部分:

public function open(array $options = array())
{
    //....

    $attributes['method'] = $this->getMethod($method);
    $attributes['action'] = $this->getAction($options);
    $attributes['accept-charset'] = 'UTF-8';

    //....

    return '<form'.$attributes.'>'.$append;
}

来源:https://github.com/illuminate/html/blob/master/FormBuilder.php#L104

但你可以通过传递'url'轻松覆盖它:

Form::open(['url' => '#'])

注意:覆盖action之类的Form::open(['action' => '#'])会引发错误,因为它指定了路由的名称。 url指定原始网址。