Переключатель проверен

#javascript #html #asp-classic

#javascript #HTML #жерех-классик #asp-классический

Вопрос:

При отправке моей формы переключатели не дают «проверено», когда они проверены. В остальном форма работает хорошо, но я не могу получить значение из кнопок. Есть какие-нибудь предложения по текущему коду?

 <form action="" method="post" id="termCloudForm">
    <nobr>
        Slot: 
        <input type="text" name="Slot" size="6" 
          <% If Request.Form("Slot") <> "" Then Response.Write(" value=""" amp; Request.Form("Slot") amp; """") %> 
         />
    </nobr>
    <nobr>
        Date: 
        <input type="text" name="Date" size="6" 
          <% If Request.Form("Date") <> "" Then Response.Write(" value=""" amp; Request.Form("Date") amp; """") %> 
        />
    </nobr>
    <nobr>
        <input type="radio" id="radio_button_1" name="radio_button" value="1" /> 
        rad1     
    </nobr>
    <nobr>
        <input type="radio" id="radio_button_2" name="radio_button" value="2" /> 
        rad2 
    </nobr>
<input type="submit" name="action" value="Submit" />
</form>
  

и часть javascript, в которой я ее извлекаю, была значительно упрощена, чтобы просто проверить, проходило ли оно. Я думаю, что принудительное использование его в javascript для termcloud — это то, где я получаю ошибки, но я не уверен, где.

 function initTermCloud() {
var myForm = document.getElementById("termCloudForm");
var slot = myForm.elements["Slot"].value;
var date = myForm.elements["Date"].value;
var url = encodeURI('http://TermCloudJSON2Local.asp?Slot='   slot   'amp;Date='   date);

alert(myForm.elements["radio_button_1"].checked == true);
var query = new google.visualization.Query(url);
query.setTimeout(20);
query.send(queryResponse);
}
  

Комментарии:

1. Вы пробовали выводить весь массив POST, чтобы убедиться, что вы не просто пропустили значение?

2. Можете ли вы показать код, в котором вы пытаетесь получить свои значения?

Ответ №1:

использование

 <% response.write(request.form("radio_button")) %>
  

необходимо напечатать 1 или 2 в зависимости от вашего выбора.

это не работает?

редактировать: на основе вашего отредактированного вопроса

попробуйте это

 function validate(){
    var cont=0;
    var result=false;
    var oArr=document.getElementsByName('radio_button');
    for(cont=0;cont < oArr.length;cont  ){
        if(oArr[cont].checked == true){
            alert(oArr[cont].id   'was checked');
            result=true;
        }
    }
    return(result);
}
  

Комментарии:

1. Итак, <% response.write(request.form(«radio_button»)) %> выводится правильно, но, похоже, он неправильно передается в часть кода javascript, и я не знаю почему.

2. ваш подход к проверке того, какой радиобутек проверен, неверен, переключатели / флажки ведут себя как массив элементов на основе их имени, правильный подход — получить весь массив и выполнить итерацию между ними и проверить проверенное состояние

3. Итак, я только что попробовал ваш код, но он не предупреждает. Я думаю, проблема может заключаться в том, что действие формы само по себе и, следовательно, оно выбирает непроверенные кнопки. Не уверен, как это изменить.

4. Я все еще не могу заставить его работать, но спасибо за помощь, пока это было действительно полезно

Ответ №2:

Попробуйте найти с идентификатором, как показано ниже.

 function initTermCloud() {
        var myForm = document.getElementById("termCloudForm");
        var slot = myForm.elements["Slot"].value;
        var date = myForm.elements["Date"].value;
        var url = encodeURI('http://TermCloudJSON2Local.asp?Slot='   slot   'amp;Date='   date);

        alert(document.getElementById("radio_button_1").checked)

        var query = new google.visualization.Query(url);
        query.setTimeout(20);
        query.send(queryResponse);
    }
  

Комментарии:

1. Изначально я использовал именно этот код, но я получаю только начальное значение переключателей, т.Е. непроверенный, или если я изначально установил для него значение checked, тогда это выйдет. Я думаю, что это может быть связано с публикацией самому себе. Не уверен, почему.

Ответ №3:

Поскольку Рафаэль дал вам правильный синтаксис ASP для извлечения значения переключателя (т. Е. Его ответа.Напишите код) вам это не нужно.

Если у вас возникли проблемы с initTermCloud, вы можете использовать ответ, который дал вам Джинеш Джейн. В качестве альтернативы, вы могли бы сделать что-то вроде этого:

http://www.randomsnippets.com/2008/05/15/how-to-loop-through-checkboxes-or-radio-button-groups-via-javascript/