Подтвердите HTML, используя Javascript - PullRequest
0 голосов
/ 30 марта 2012

У меня есть следующий код;Я хочу убедиться, что на самом деле submit не публикует на странице, указанной действием, если не выбран один из двух радиовходов.Я пробовал несколько вариантов этого и другого кода, и не могу понять, что не так.Независимо от того, выбраны ли переключатели или нет, они все еще публикуются на somepage.py.

<html>
    <head>
        <title>
            Test Page
        </title>
        <script language="JavaScript">
            function validate(formEntry) {

                if (formEntry.Q1.q11.checked != true && formEntry.Q1.q12.checked != true)
                    return false;

                return true;
            } 
        </script>
    </head>
    <body>
        <form action="somepage.py" method="POST" onsubmit="return validate(this);">
            <input type="radio" name="Q1" id="q11" value="1" />
            <input type="radio" name="Q1" id="q12" value="2" />
            <input type="submit" name="Submit" />
        </form>
    </body>
</html>

Ответы [ 5 ]

0 голосов
/ 30 марта 2012

Если вы сделаете одну кнопку проверенной по умолчанию, то она всегда будет проверена:

<input type="radio" name="Q1" id="q11" value="1" checked>
<input type="radio" name="Q1" id="q12" value="2" > 

Или функция может быть просто:

function validate(formEntry) {
    return formEntry.Q1[0].checked || formEntry.Q1[1].checked ;
}

Если любой из них отмечен, он вернет true, иначе false.

0 голосов
/ 30 марта 2012

попробуйте свою функцию, как: -

function validate(formEntry) {

   var radiobtn=document.getElementsByName('Q1');
   if(!(radiobtn[0].checked || radiobtn[1].checked))
        return false;

    return true;
}
0 голосов
/ 30 марта 2012

Использовать проверку JQuery. Проверьте эту ссылку для деталей http://bassistance.de/jquery-plugins/jquery-plugin-validation/

Демо-страница здесь: http://jquery.bassistance.de/validate/demo/

0 голосов
/ 30 марта 2012

Вроде работает, посмотрите на:

http://jsfiddle.net/EEgea/

Может быть, вам лучше использовать такую ​​среду, как JQuery, чтобы предотвратить ошибки в JavaScript между различными браузерами

Или используйте среду валидации, такую ​​как валидация JQuery, я настоятельно рекомендую это сделать.

0 голосов
/ 30 марта 2012

if (!formEntry.Q1[0].checked && !formEntry.Q1[1].checked)

Попытка получить доступ к вводу с помощью имя-формы . имя-входа . input_id действительно странно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...