валидации JavaScript нужна помощь, чтобы добавить поддержку радио - PullRequest
0 голосов
/ 09 мая 2011

Я использую скрипт osDate и пытаюсь изменить форму регистрации в соответствии с моими настройками.

Пока у меня есть приведенный ниже код javascript, но я хотел бы проверить комплект радиокнопки, но не уверен, как добавить его в текущий код.

Я ищу его, чтобы проверить, был ли он выбран, так как по умолчанию либо выбран, так что я хочу, чтобы пользовательчтобы выбрать один.

Когда форма отправлена, она имеет следующий

<form name="frmSignup" id="frmSignup" method="post" enctype="multipart/form-data" action="register_save.php" onsubmit="javascript:return validateme(this);">

Так что она действительно должна быть частью текущей проверки ошибок JavaScript, так как при отправке она вызывает код JavaScript.

Код переключателя:

<input type="radio" value="orange" name="fruit" /> Orange
<input type="radio" value="apple" name="fruit" /> Apple

Это проверка ошибок JavaScript:

var alphanumeric_chars = "0123456789.+-_#,/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ()_";
var alphanum_chars = "0123456789_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
var text_chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz /'";
var full_chars = "0123456789.+-_#,/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz() _$+=;:?'";


<script type="text/javascript">
/* <![CDATA[ */
function validateme(form)
{
    var tos_ok = form.accept_tos.checked;

    ErrorCount=0;
    ErrorMsg = new Array();
    /* log details */
    CheckFieldString("noblank",form.username,"Please enter the username.");
    CheckFieldString("alphanum",form.username,"Only letters, numbers and underscores '_' are allowed in the username.");
    CheckFieldString("noblank",form.email,"Email must be specified.");
    CheckFieldString("email",form.email,"Email address is not valid.");
    CheckFieldString("noblank",form.firstname,"First Name must be specified.");
    CheckFieldString("text",form.firstname,"Only letters are allowed in First Name.");
    CheckFieldString("noblank",form.lastname,"Last Name must be specified.");
    CheckFieldString("text",form.lastname,"Only letters are allowed in Last Name.");
    CheckFieldString("noblank",form.address1,"Last Name must be specified.");
    CheckFieldString("full",form.address1,"Only letters, numbers and underscores '_' are allowed in the password.");
    CheckFieldString("full",form.address2,"Only letters, numbers and underscores '_' are allowed in the password.");
    CheckFieldString("noblank",form.city,"Last Name must be specified.");
    CheckFieldString("text",form.city,"Only letters are allowed in Last Name.");

    if(form.username.value.length >= 5 && form.username.value.length <= 20){
        if ( !isNaN(form.username.value.charAt(0)) ){
            ErrorCount++;
            ErrorMsg[ErrorCount] = "Username must start with a letter." ;
        }
    }else{
        ErrorCount++;
        ErrorMsg[ErrorCount] = "Number of characters in username should be between the specified range." ;
    }

    if (tos_ok != true) {
        ErrorCount++;
        ErrorMsg[ErrorCount]="Please read and accept the Terms of Service before registering";
    }       

    /* concat all error messages into one string */
    result="";
    if( ErrorCount > 0)
    {
        result = "---- Following errors occured -----"+ String.fromCharCode(13)+ String.fromCharCode(10);
        for( c in ErrorMsg)
            result += ErrorMsg[c]+ String.fromCharCode(13)+ String.fromCharCode(10)+ String.fromCharCode(10);
        alert(result);
        return false;
    }
    return true;
}
/* ]]> */
</script>

1 Ответ

1 голос
/ 09 мая 2011

Как насчет этого

Внутри ваших тегов скрипта, но вне вашей текущей функции validateme () добавьте следующий метод.

function CheckRadioButtons()
{
    var arr = document.getElementsByName("fruit");
    var pass = false;
    for (chk in arr)
    {
        if(chk.checked)
        {
            pass = true;
        }
    }
    if(!pass)
    {
        return 1;
    }
    return 0;
}

Теперь добавьте следующие строки в validateme () после всей вашей проверки строки.

if(CheckRadioButton() == 1)
{
    ErrorCount++;
    ErrorMsg[ErrorCount] = "At least one radio button must be selected.";
}

Надеюсь, это поможет.

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