2014-01-20 2 views
0

Это мое кодирование для проверки динамического поля. , если я использую эту функцию, я получил 'TypeError: document.getElementById (...) null, этот тип ошибки.TypeError: document.getElementById (...) имеет значение null в javascript

function sr_answer_val(){ 
    var cnt=parseInt(document.getElementById("add_field_cnt").value); 
    var submitAllow=true; 
    for(var i=1;i<cnt;i++){ 
    if(document.getElementById("cust_field_"+i).value ==''){ 
     alert('Answer Should be Mandatory'); 
     submitAllow=false; 
     return false;  
    } 
    } 
} 
+0

Проверьте HTML, если на самом деле есть все элементы, присутствующие (на момент исполнения) вы хотите получить доступ , – Sirko

+0

http://stackoverflow.com/questions/14028959/why-does-jquery-or-a-dom-method-such-as-getelementbyid-not-find-the-element – basilikum

+0

Просьба также предоставить вашу разметку HTML. Проверьте, существует ли элемент __add_field_cnt__ и __cust_field_ __ на странице юр –

ответ

0

Возможно, ваши пользовательские поля не все определены, поэтому при попытке доступа к одному из них он не определен.

Проверить наличие элемента перед тем экранным нравится:

function sr_answer_val() { 
    var cnt = parseInt(document.getElementById("add_field_cnt").value); 
    var submitAllow = true; 
    for (var i = 1; i < cnt; i++) { 
     if (document.getElementById("cust_field_" + i) && document.getElementById("cust_field_" + i).value == '') { 
      alert('Answer Should be Mandatory'); 
      submitAllow = false; 
      return false; 
     } 
    } 
} 

Демо: http://jsfiddle.net/IrvinDominin/X3ZnQ/

0

В вашем html нет элемента с идентификатором с именем "add_field_cnt". Проверьте, нет ли опечаток.

0

Ваш элемент add_field_cnt (DOM) не загружен/создан.

Я думаю, вы загружая JS в голове, а не делать это в нижней части body или использовать document.ready

0

Элемент с идентификатором передается getElementById() не существует. Таким образом, вы можете сделать нулевой чек

var elem = document.getElementById("add_field_cnt"); 
if(typeof elem !== 'undefined' && elem !== null) { 
    var cnt = parseInt(document.getElementById(elem).value); 
    .......// do your stuff 
} 
0

Там нет элемента с идентификатором add_field_cnt так что вы получаете эту ошибку

var cnt=parseInt(document.getElementById("add_field_cnt").value); 

пожалуйста, проверьте ваш элемент создается или нет с add_field_cnt Я БЫ.

Надеюсь, что так.

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