2015-09-10 5 views
0

У меня есть javascrpt OnClick функции, но он говорит, переменные не определены, то OnClick от тегаПеременная JavaScript OnClick функция не определена

<a href="#" title="Click to select" rowno="'+NROW+'" name="'+NAME+'" onClick="remname(rowno,name);"></a> 

я получаю сообщение об ошибке сказав «Ровно» не определено

Это однако бывает только в IE11 IE7 отлично работает и будет работать функция

JavaScript:

function remname(NAME,ROW) 
{ 
    if (confirm('Remove registration entry '+NAME+'?')) 
    { 
     ***FUNCTION USING ANOTHER SYSTEM*** 
    } 
} 
+2

могли бы вы опубликовать определение 'remname (Ровно, имя)' too..also, если вы могли бы воспроизвести проблему в скрипку, было бы полезно .. – Lal

+1

Вы не можете просто добавить свой собственный атрибут. попробуйте использовать данные- * вместо этого. (Которая решает половину проблемы. Позже сделайте remname accept dom element и там (!) Прочитайте эти атрибуты) –

+1

Снова: Где ваш код Javascript? – hammus

ответ

0

Часть кода, которая написана в onclick атрибут работает в функции, где это ссылки на элемент, к которому принадлежит атрибут onclick. Любая другая не глобальная переменная (в вашем случае rowno и имя) не определено. Таким образом, вы можете использовать this ссылки для доступа DOMElement, который имеет метод с именем getAttrubute() для извлечения значения атрибутов, как так:

remname(this.getAttribute('rowno'), this.getAttribute('name')) 

Однако, я также хотел бы предложить использовать обработчик событий, а не на * атрибутах. Это будет лучше и легче поддерживать практику.

HTML

<a href="#" id="magicAnchor" title="Click to select" rowno="'+NROW+'" name="'+NAME+'"></a> 

JavaScript

document.getElementById('magicAnchor').addEventListener('click', function() { 
    if (confirm('Remove registration entry '+ this.getAttribute('name') +'?')) 
    { 
     ***FUNCTION USING ANOTHER SYSTEM*** 
     // to access rowno attribute use: this.getAttribute('rowno') 
    } 
}); 
+0

Рассмотрите возможность редактирования сообщения, чтобы добавить больше объяснений о том, что делает ваш код, и почему он решит проблему. Ответ, который в основном содержит только код (даже если он работает), обычно не помогает OP понять их проблему. – SuperBiasedMan

+0

Отредактировано код, чтобы иметь this.getAttribue, и теперь он работает Спасибо :) – user3389199

0

Вместо передачи этих переменных, которые вы можете получить доступ к ним позже remname функции() как

var remname=function(){ 
      var rowno=document.getElementById("selectme").getAttribute("data-rowno"); 
      var NAME=document.getElementById("selectme").getAttribute("data-name"); 
      console.log(rowno+' '+NAME); 
     } 

и здесь является HTML

<a href="#" id="selectme" title="Click to select" data-rowno="'+NROW+'" data-name="'+NAME+'" onclick="remname()">abc</a> 
Смежные вопросы