Uncaught SyntaxError:意外的标识符

时间:2015-10-27 09:59:42

标签: jquery yii2

我想动态地向表中添加数据。我尝试了以下代码

<?php

$script = <<<SKRIPT

$(document).on('submit', '#TaskCreateForm', function(event) {
  $.pjax.submit(event, '#PtlTasksPjax')
})

SKRIPT;

$this->registerJs($script);
$this->registerJs(
'
$("document").ready(function(){ 

    $("#receipt_details").click(function(e) {

        if ($("#receipt-date_of_payment").val() != "")
        {
            if ($("#receipt-payment_method_id").val() != "")
            {
                if ($("#receipt-name").val() != "")
                {
                    if($("#receipt-amount").val() != "")
                    {

                         $("#addfee tr").last().after("<tr><td><input type="text" name="Receipt[name][" + $("#receipt-name").val() + "][name]" value=" + $("#receipt-name").val() + " readonly="readonly"></td>" +
                    "<td><input type="text" name="Receipt[amount][" + $("#receipt-amount").val() + "][amount]" value=" + $("#receipt-amount").val() + " readonly="readonly"></td>" +
                    "<td><button>X</button></td></tr>");


                    }
                    else
                    {
                        alert("Enter Amount");
                        e.preventDefault();
                    }
                }
                else
                {
                    alert("Enter Receipt Name");
                    e.preventDefault();
                }
            }
            else
            {
            alert("Enter Payment Method");
            e.preventDefault();
            }

        }
        else
        {
        alert("Enter Payment Date");
        e.preventDefault();
        }

        });
        });'
);
?>

我收到错误Uncaught SyntaxError: Unexpected identifier

这是我得到语法错误的行

 $("#addfee tr").last().after("<tr><td><input type="text" name="Receipt[name][" + $("#receipt-name").val() + "][name]" value=" + $("#receipt-name").val() + " readonly="readonly"></td>" +

当我点击id =“receipt_details”的按钮时,我希望将数据存储在表格中

<div class="row">
        <div class="col-md-10">
            <div class="newtable">
                <table id="addfee" class="table table-bordered">
                    <tbody>
                    <tr>
                        <th>Name</th>
                        <th>Amount</th>
                        <th>Action</th>
                    </tr>
                    </tbody>
                </table>
            </div>
        </div>
    </div>

2 个答案:

答案 0 :(得分:1)

问题在于字符串连接,因为您使用"作为属性值,并且为了表示字符串文字,您需要在文字中转义那些"或使用'"喜欢

$("#addfee tr").last().after('<tr><td><input type="text" name="Receipt[name][' + $("#receipt-name").val() + '][name]" value="' + $("#receipt-name").val() + '" readonly="readonly"></td>' +
                            '<td><input type="text" name="Receipt[amount]["' + $("#receipt-amount").val() + '"][amount]" value="' + $("#receipt-amount").val() + '" readonly="readonly"></td>' +
                            '<td><button>X</button></td></tr>');

演示:Fiddle

答案 1 :(得分:1)

您需要转义将<build> <finalName>myJar</finalName> </build> 更改为"以换取字符串并转义'"更改为registerJs函数,该函数本身就是使用\,大多数IDE都没有因此而接收到JS错误