Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Symfony-食谱“;添加新标签";嵌入形式的isn';行不通_Javascript_Jquery_Symfony_Cookbook - Fatal编程技术网

Javascript Symfony-食谱“;添加新标签";嵌入形式的isn';行不通

Javascript Symfony-食谱“;添加新标签";嵌入形式的isn';行不通,javascript,jquery,symfony,cookbook,Javascript,Jquery,Symfony,Cookbook,我遵循了Symfony cookbook中名为“如何嵌入表单集合”的部分,并添加了此javascript函数,使其具有添加新标记字段的链接。表单正确,显示任务描述字段和一个标记名字段 当我点击链接时,什么也没发生。JS代码显示在我页面的源代码中。 顺便说一句,Netbeans告诉我在我的链接中添加一个标记“预期分号;后面)” 这是我的控制器代码: public function addTaskAction() { $task = new Task(); $

我遵循了Symfony cookbook中名为“如何嵌入表单集合”的部分,并添加了此javascript函数,使其具有添加新标记字段的链接。表单正确,显示任务描述字段和一个标记名字段

当我点击链接时,什么也没发生。JS代码显示在我页面的源代码中。 顺便说一句,Netbeans告诉我在我的链接中添加一个标记“预期分号;后面)”

这是我的控制器代码:

public function addTaskAction()
    {
        $task = new Task();
        $task->addTag(new Tag());

        $form = $this->createForm(new TaskType(), $task);

        $request = $this->get('request');
        if ($request->getMethod() === 'POST') {
            $form->bind($request);
            if ($form->isValid()) {
                $em = $this->getDoctrine()->getManager();
                $em->persist($task);
                $em->flush();

            return $this->redirect($this->generateUrl('mytask_task',
                array('id' => $task->getId())));
            }
        }    
        return $this->render('MyTaskBundle:Question:taskadd.html.twig',
            array(
                'form' => $form->createView()
            ));
    }
和my form.html.twig:

<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript">     
    var collectionHolder = $('ul.tags');
    var $addTagLink = $('<a href="#" class="add_tag_link">Add a tag</a>');
    var $newLinkLi = $('<li></li>').append($addTagLink);

    jQuery(document).ready(function() {
        collectionHolder.append($newLinkLi);
        $addTagLink.on('click', function(e) {
            e.preventDefault();
            addTagForm(collectionHolder, $newLinkLi);
        });
        collectionHolder.find('li').each(function() {
            addTagFormDeleteLink($(this));
        });
    });
    function addTagForm(collectionHolder, $newLinkLi) {
        var prototype = collectionHolder.attr('data-prototype');
        var newForm = prototype.replace(/__name__/g,
 collectionHolder.children().length);
        var $newFormLi = $('<li></li>').append(newForm);
        $newLinkLi.before($newFormLi);

    }

    }       
</script>

    <form method="post" {{ form_enctype(form) }}>
    {{ form_row(form.description) }}

    <h3>Tags</h3>

    <ul class="tags" data-prototype="{{ form_widget(form.tags.vars.prototype)|e }}">
    {% for tag in form.tags %}
        <li>{{ form_row(tag.name) }}</li>
    {% endfor %}
            <a href="#" class="add_tag_link" onclick="addTagForm()">Add a tag</a>
    </ul>

    {{ form_rest(form) }}
    <input type="submit" class="btn btn-primary" />
    </form>

var collectionHolder=$('ul.tags');
变量$addTagLink=$('');
变量$newLinkLi=$('
  • ')。追加($addTagLink); jQuery(文档).ready(函数(){ collectionHolder.append($newLinkLi); $addTagLink.on('click',函数(e){ e、 预防默认值(); 地址表(收款人,$newLinkLi); }); collectionHolder.find('li')。每个(函数(){ addTagFormDeleteLink($(此)); }); }); 函数addTagForm(collectionHolder$newLinkLi){ var-prototype=collectionHolder.attr('data-prototype'); var newForm=prototype.replace(/\u\u name\u\g, collectionHolder.children().length); 变量$newFormLi=$('
  • ')。追加(newForm); $newLinkLi.before($newFormLi); } } {{form_row(form.description)}} 标签
      {form.tags%中的标记的%s}
    • {{form_row(tag.name)}
    • {%endfor%}
    {{form_rest(form)}
    我终于在这段视频中找到了一个更简单的JS代码:它工作得很好

       $(function(){
             var index = 0;
             var prototype = $('ul.answer').data('prototype');
             $('#addmore').on('click', function(){
                 var newForm = prototype.replace(/__name__/g, index++);
                 var newLi = $('<li></li>');
    
                 newLi.append(newForm);
                 $(this).before(newLi);
             });
         });
    
    $(函数(){
    var指数=0;
    var prototype=$('ul.answer')。数据('prototype');
    $('#addmore')。在('单击',函数()上){
    var newForm=prototype.replace(/\uuuuu name\uuuuu/g,index++);
    var newLi=$(“
  • ”); newLi.append(newForm); 美元(本)。之前(纽利); }); });
    设置分号=>onclick=“addTagForm();”我会从烹饪书中获取javascript代码。分号不会改变任何内容。这是烹饪书javascript,我没有做任何更改。我注意到在我的url末尾添加了#,它不应该带有“e.preventDefault();”。我发现这段代码非常相似,但效果并不好: