Javascript отправить - PullRequest
       3

Javascript отправить

0 голосов
/ 28 февраля 2011

У меня есть форма с 4 вопросами, у каждого есть 2 ответа на выбор - тип переключателя.

(1) Хотите молока? да Нет

(2) Ты счастлив? да Нет

(3) У вас есть родители? да Нет

(4) У тебя есть сестры? да Нет

(1) сначала я хотел бы получить подтверждение javascript или jquery, чтобы убедиться, что на каждый вопрос выбран ответ, форма не должна содержать пустое значение.

(20) если пользователь выбирает «Да» для любого вопроса, он переносит его на страницу Yes.html. если пользователь выбирает «Нет», он переводит их в «HTML». Для того, чтобы они получили доступ к HTML, им нужно будет выбрать все Нет ответов на каждый вопрос

так что да, здесь больше предпочтений ..

Пожалуйста, помогите.

Я хочу это, но с проверкой, чтобы убедиться, что все выбрано:

<script type="text/javascript">
    function choosePage() {
        if(document.getElementById('weightloss').form1_option1.checked) {
            window.location.replace( "http://google.com/" );
        }
        if(document.getElementById('weightloss').form1_option2.checked) {
            window.location.replace( "http://yahoo.com/" );
        }
    }
</script>

<form id="weightloss">
     <input type="radio" id="form1_option1" name="weight-loss" value="5_day" class="plan">
     <label for="form1_option1"> 5 Day - All Inclusive Price</label><br>
     <input type="radio" id="form1_option2" name="weight-loss" value="7_day">
     <label for="form1_option2"> 7 Day - All Inclusive Price</label><br>
     <input type="button" value="Place Order" alt="Submit button" class="orange_btn" onclick="choosePage()">
</form>

Ответы [ 3 ]

0 голосов
/ 01 марта 2011

Вот немного HTML:

<form name="myForm" id="formId">
    <span>Do you want milk?</span>
    <input type="radio" name="milk" value="yes" /><label>yes</label>
    <input type="radio" name="milk" value="no" /><label>no</label>

    <span>Are you happy?</span>
    <input type="radio" name="happy" value="yes" /><label>yes</label>
    <input type="radio" name="happy" value="no" /><label>no</label>

и так до тех пор, пока ...

    <a onclick="validate();">Click here to submit</a>
</form>

и ваш javascript:

function validate(){
    var data = $("#formId").serialize();
    var field;
    for (field in data){
        if (data.hasOwnProperty(field)){
            if (data[field] == "yes"){
                window.location = "yes.html";  
                return;  
            }
        }
    }
    window.location = "no.html";
    return;
}
0 голосов
/ 01 марта 2011

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

var names = [];
$("input[type=radio]").each(function() {
    if (!!$.inArray($(this).attr("name"), names)) {
        names.push($(this).attr("name"));
    }
});
var $checkedRadio = $.map(names, function(name) {
    return $("input[name=" + name + "]:checked");
});

if(names.length !== $checkedRadio.length){
    //dont submit
    return false;
}

Пример работы с jsfiddle .

0 голосов
/ 28 февраля 2011
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <form onsubmit="validate(this); return false;">
        <table>
            <tr>
                <td>Do you want milk?</td>
                <td>Yes<input type="radio" name="milk"  class="Yes" /> No <input type="radio" name="milk" class="No" /></td>
            </tr>
            <tr>
                <td>Are you happy?</td>
                <td>Yes<input type="radio" name="happy" class="Yes" /> No <input type="radio" name="happy" class="No" /></td>
            </tr>
            <tr>
                <td>Do you have parents?</td>
                <td>Yes<input type="radio" name="parents" class="Yes" /> No <input type="radio" name="parents" class="No" /></td>
            </tr>
            <tr>
                <td>Do you have sisters?</td>
                <td>Yes<input type="radio" name="sisters" class="sisters" /> No <input type="radio" name="sisters" class="No" /></td>
            </tr>
            <tr>
                <td colspan="2"><input type="submit" value="Done" /></td>
            </tr>
        </table>
    </form>
</body>
</html>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script>
<script type="text/javascript">
    function validate(form) {
        var hasYes = false;
        var counter = 0;
        $("input:checked", form).each(function() {
            if ($(this).hasClass("Yes")) {
                hasYes = true;
            }
            counter++;
        });
        if (hasYes == true || counter != 4)
            window.location = "Yes.html";
        else
            window.location = "No.html";
    }
</script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...