#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, вы можете использовать ответ, который дал вам Джинеш Джейн. В качестве альтернативы, вы могли бы сделать что-то вроде этого: