Форма отправки не возвращает данные на сервер в Firefox, но нормально в проводнике - PullRequest
0 голосов
/ 08 июля 2011

Вот код.Функционально он работает нормально, но не собирает данные при использовании Firefox.

Javascript

var redirectPage = "rsvp.html"; //CHANGE redirected page here.


function submitform() {
    document.bandform.submit(); //CHANGE name of form here
    RedirectWithFormValues();
}

function RedirectWithFormValues() {
    var band = GetRadioValue("nameband"); //CHANGE name of variable here
    window.location = redirectPage + "?band=" + band; //CHANGE name of new variable here
}

function GetRadioValue(rdName) {
    var rd = document.getElementsByName(rdName);
    for (var i = 0; i < rd.length; i++) {
        if (rd[i].checked) {
            return rd[i].value;
        }
    }
}

HTML-разметка

<form action="" method="post" name="bandform">  
    <input name="nameband" type="radio" value="Noon - 1pm" checked="checked" class="radio1">
    <input name="nameband" type="radio" value="5pm - 6pm" class="radio2">
    <input type="button" value="" class="button1" name="" onclick="javascript:submitform();">  
< /form>

Любая помощь приветствуется!

Ответы [ 3 ]

0 голосов
/ 08 июля 2011

почему бы просто не установить значение redirectPage (с выбором диапазона) для элемента действия формы, а затем просто позволить форме отправлять (возвращать true из submitForm ()) вместо выполнения перенаправления?

function submitform() {
    setFormAction();
    return true;
}

function setFormAction() {
    var band = GetRadioValue("nameband");
    var redirectUrl = redirectPage + "?band=" + band;
    document.getElementById('bandform').action = redirectUrl;
}

function GetRadioValue(rdName) {
    var rd = document.getElementsByName(rdName);
    for (var i = 0; i < rd.length; i++) {
        if (rd[i].checked) {
            return rd[i].value;
        }
    }
}

<form action="" method="post" id="bandform" name="bandform">  
    <input name="nameband" type="radio" value="Noon - 1pm" checked="checked" class="radio1">
    <input name="nameband" type="radio" value="5pm - 6pm" class="radio2">
    <input type="submit" name="" onClick="submitform()" value="Submit" />
< /form>
0 голосов
/ 08 июля 2011

Вместо этого попробуйте код ниже,

секция Aspx,

        <form name='bandform' method='post' action='' onsubmit='return submitform();'>
            <input type='submit' value=' Send Message ' /> 
        </form>

Раздел Javascript,

       function submitform() {

       document.bandform.submit(); 
       RedirectWithFormValues();

       return true;
       }

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

0 голосов
/ 08 июля 2011

Это, вероятно, не будет работать в большинстве браузеров:

function submitform() {
    document.bandform.submit(); //CHANGE name of form here
    RedirectWithFormValues();
}

Что вы должны сделать, это примерно так с jQuery:

$('#bandform').ajaxForm({
    success: RedirectWithFormValues
});

Это выполнит отправку AJAX в форме, а после завершения вызовет функцию RedirectWithFormValues.

...