Передача простой переменной в JavaScript (форма)

0

Я неопытный веб-разработчик, записывающий регистрационную форму с использованием JS для проверки на стороне клиента и PHP для серверной части. Я застрял, пытаясь просто проверить переменную и убедиться, что она переходит к JS. Я слышал, что jsfiddle не любит формы, поэтому я изменил код своей скрипки, чтобы не включать теги формы. При выполнении этого кода код ничего не делает. Может кто-нибудь помочь, пожалуйста? Кроме того, следует ли устанавливать Apache для тестирования формы локально или Chrome сможет справиться с этим? Я знаю, что мне придется в конечном итоге протестировать PHP, но я просто пытаюсь заставить JS-валидацию работать прямо сейчас.

http://jsfiddle.net/5JT94/

HTML:

<p>Zip Code: <input type="text" name="zipbox"></p>
<p><input type="submit" name="submit" onClick="formValidation()" value="Submit" /></p>

JS:

function formValidation()  
{  
var zip=document.getElementById("zipbox");  

function allnumeric(zip)  
{   
    var numbers = /^[0-9]+$/; 
    if(zip.value.match(numbers))  
    {  
        alert("Everything OK");
    }  
    else  
    {  
        alert("Numbers only please");  
    }  
}; 
};
  • 1
    «Код ничего не делает, когда я его запускаю». Что это должно сделать?
  • 1
    Вы никогда не вызываете allnumeric() .
Теги:
forms

4 ответа

1
Лучший ответ

Вы не выполняли функцию на zip, которую вы нашли.

var zip=document.getElementById("zipbox");  
allnumeric(zip);

http://jsfiddle.net/5JT94/1/

  • 0
    Вот и все, спасибо.
  • 0
    Downvoter хотите прокомментировать?
Показать ещё 2 комментария
0

И в случае, если вы не хотите добавлять идентификатор (не можете понять, почему):

Демо: JSFiddle

HTML

<form name="zipform">
    <p>Zip Code: <input type="text" name="zipbox" /></p>
    <p><input type="submit" name="submit" value="Submit" /></p>
</form>

JS

function formValidation() {  
    var zip=document.forms["zipform"].elements["zipbox"];
    var numbers = /^[0-9]+$/; 
    if(zip.value.match(numbers))  {  
        alert("Everything OK");
    } else {  
        alert("Numbers only please");
        return false;
    }
    return true;
}

document.forms["zipform"].elements["submit"].onclick=formValidation;
0

Одна из проблем может быть связана с тем, как работает jsfiddle. Мне пришлось добавить "window.formValidation = formValidation", чтобы была найдена функция formValidation, определенная вами в onClick. Во-вторых, у вас была универсальная функция, но она не вызывалась.

function formValidation()  
{  
    var zip=document.getElementById("zipbox");  

    function allnumeric(zip)  
    {   
        var numbers = /^[0-9]+$/; 
        if(zip.value.match(numbers))  
        {  
            alert("Everything OK");
        }  
        else  
        {  
            alert("Numbers only please");  
        }  
    }; 

    allnumeric(zip);
};

window.formValidation = formValidation
-2

у вашего элемента нет идентификатора? изменить, как показано ниже

   <input id="zipbox" type="text" name="zipbox">

затем отлаживается оттуда

  • 0
    Это комментарий, а не ответ.
  • 0
    У него есть идентификатор в скрипке. При отладке я поменял его на имя и случайно вставил в свой пост.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню