2015-10-27 2 views
-1

Я хотел бы динамически добавлять данные в таблицу. я попытался следующий кодUncaught SyntaxError: Неожиданный идентификатор

<?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> 
+1

В вашей конкатенации строк есть синтаксические ошибки –

+0

okay может помочь мне исправить это – Bloodhound

+0

, поскольку у вас есть '' 'в строковых литералах, вам нужно либо сбежать, либо использовать' '' 'для обозначения строкового литерала -' $ ("#addfee tr"). last(). after (' '+ ' '+ ' «);' –

ответ

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

+0

спасибо за скрипкой :-) – Bloodhound

1

Вам нужно бежать либо измените значение " на ' для обертывания строки и выхода и " с \ в функции registerJs, которая сама использует ', большинство IDE не забирают ошибки JS из-за этого

+0

спасибо за ответ , – Bloodhound

Смежные вопросы