2014-11-14 4 views
0

Я работаю над простой функцией, в которой у меня есть таблица строк, а в каждой строке - editButton. В OnClick кнопки редактирования, я звоню сильфона функции и получаю ошибку:Uncaught SyntaxError: Неожиданный идентификатор

Uncaught SyntaxError: Unexpected identifier 

Он указывает на линию 1 из файла PHP, который просто имеет декларацию DOCTYPE (который, кажется, хорошо, когда я загружаю страница первая - ошибка возникает только при нажатии кнопки редактирования). Функция ниже:

function editGUI(rowNum, carerName, carerAddress, carerMobile, carerID){ 
     row=document.getElementById('Row'+rowNum); 
     row.innerHTML= '<tr id="Row' + i + '">\ 
        <td><input type="text" value="' + carerName + '"></td>\ 
        <td><input type="text" value="' + carerAddress + '"></td>\ 
        <td><input type="text" value="' + carerMobile + '"></td>\ 
        <td> HISTORY </td>\ 
        <td><button onClick="editCarer('+carerID+');">EDIT</button></td>\ 
        </tr>'; 
    }; 

Первоначальный HTML динамически добавляется javascrript и корректно отображается на экране:

for (var i = 0; i < JSON_csw.length; i++) 
    { 
     table += '<tr id=Row'+ i +'>\ 
        <td>' + JSON_csw[i].carerName + '</td>\ 
        <td>' + JSON_csw[i].carerAddress + '</td>\ 
        <td>' + JSON_csw[i].carerMobile + '</td>\ 
        <td> HISTORY </td>\ 
        <td><button id=btn[' + i + '] \ 
        onClick="editGUI('+ i +','+JSON_csw[i].carerName+','+JSON_csw[i].carerAddress+', '+JSON_csw[i].carerMobile+', '+JSON_csw[i].carerID+');">\ 
        EDIT</button></td>\ 
        </tr>'; 
    } 

DOCTYPE декларации;

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 

Любая помощь приветствуется, я не могу обнаружить ошибку

+0

'i' не определен в вашем первом фрагменте кода:' row.innerHTML = ' \ ' –

+0

@MarcB спасибо, что я этого не заметил. Я удалил i, но я все равно получаю ту же ошибку. – user2363025

ответ

0

Если carerID не число, то оно должно быть заключено в кавычки. Что-то вроде:

row.innerHTML= '<tr id="Row' + i + '">\ 
        <td><input type="text" value="' + carerName + '"></td>\ 
        <td><input type="text" value="' + carerAddress + '"></td>\ 
        <td><input type="text" value="' + carerMobile + '"></td>\ 
        <td> HISTORY </td>\ 
        <td><button onClick="editCarer(\\"'+carerID+'\\");">EDIT</button></td>\ 
        </tr>'; 

Примечание: я не пробовал этот код. Возможно, вам придется играть, избегая цитат.

+0

carerID - это номер – user2363025

1

Я думаю, ваша проблема вызвана из-за эту линию:

onClick="editGUI('+ i +','+JSON_csw[i].carerName+','+JSON_csw[i].carerAddress+', '+JSON_csw[i].carerMobile+', '+JSON_csw[i].carerID+');">\ 

При передаче параметров в функцию editGUI в обработчике щелчка, вы не имеете кавычек для обозначения строк. Для элемента выборки в JSON_csw, это то, как эта строка добавляется в HTML:

onClick="editGUI(1,test_name,test_address,test_mobile, 5)" 

Вы должны заключать строки в кавычки, например:

onClick="editGUI('+ i +',\''+JSON_csw[i].carerName+'\',\''+JSON_csw[i].carerAddress+'\', \''+JSON_csw[i].carerMobile+'\', '+JSON_csw[i].carerID+');">\ 

Я думаю, что это будет тогда работать правильно. Я тоже не пробовал этот код, используйте Inspect Element, чтобы увидеть, как на самом деле отображается обработчик onClick в DOM. Затем используйте соответствующее экранирование, и вам должно быть хорошо идти.

+0

спасибо или ваш ответ. Я скопировал вашу линию и заменил ее на мою, и я все равно получаю ту же ошибку. Я попытался проверить элемент ранее и подумал, что все выглядит нормально. Кнопка \t \t \t \t не РЕДАКТИРОВАТЬ – user2363025

+0

Да нет никаких цитат для строк «Alika Blackwell» и т. Д. Замените «с помощью» и повторите попытку – Ananth

+0

Хорошо, я вижу. Я заменил, как было предложено, и теперь получил другую ошибку: Uncaught SyntaxError: Неожиданный токен} – user2363025

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