2013-11-25 3 views
0

Пытается получить значение текстового поля, передав идентификатор в параметр функции. Должно быть легко, но не могу обернуть вокруг себя голову.Передача идентификатора через параметр функции

JavaScript:

function checkfield(id) 
    { 
     var field = document.getElementById(id); 

     if (isNaN(field) == true) 
      { 
       alert('You must enter a valid number!'); 
       field.value = "0"; 
       field.focus(textbox); 
       field.select(textbox); 
       return false; 
      } 
     return true; 

    } 

HTML:

<input type="text" id="numbox19" name="customerZip" style="width: 240px" value=" " onchange="checkfield('numbox19')"/> 

Сообщение об ошибке

Error: Unable to get property 'value' of undefined or null reference

+0

Вы действительно имели в виду '' numberbox19''? Причина вашего поля «customerZip» и имеет идентификатор «19» ... и немного странно для поля в почтовом индексе, чтобы инициировать проверку другого поля чисел, такого как ... – cHao

+0

, что вы определили для 'getValue' (вы его называете, но не показывается) – scunliffe

+0

@cHao Извините за путаницу, код обновлен. –

ответ

2

Ваш ID 19, но вы передаете numberbox19 функции Javascript. Также есть несколько синтаксических ошибок.

Try:

<input type="text" id="numberbox19" name="customerZip" style="width: 240px" value=" " onchange="checkfield(this)"/> 

И Javascript:

function checkfield(field) // <-- we passed the field in directly from the HTML, using 'this' 
{ 
    alert(field.value); 

    if (isNaN(field.value)) // check the value, not the field itself! 
    { 
     alert('You must enter a valid number!'); 
     field.value = "0"; 
     field.focus(); // not "field.focus(textbox);" 
     return false; 
    } 
    return true; 

} 

Хорошая вещь здесь, если вы решите изменить идентификатор для какой-либо причине, вы только должны изменить его в одном месте вместо двух.

+0

Точно, что мне нужно. Забыл об использовании этого, и как только вы его разместили, я сразу понял. –

2

идентификатор вашего входа в "19" не "numberbox19"

+0

обновленный код, извините, это не мой код –

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