ОБНОВЛЕНИЕ: Извините, при удалении синтаксиса из сценария Perl я удалил слишком много. Вот код на данный момент. Я отправляю «student_name» в script.pl. Это может быть либо введено в текстовой форме, либо выбрано из выпадающего списка, на основе которого вы выбираете переключатель. Но это не похоже на работу для меня.
<form method="post" action="script.pl">
Type Student Name<input type="radio" name="student_name"><input type=text name="student_name" size=50>
<b>OR</b>
Select Student Name<input type="radio" name="student_name">
<select name="student_name">
<option value="jack">Jack</option>
</select>
</form>
СТАРЫЙ ПОЧТА ———————————————— ————————————————— —————
Я пытаюсь создать форму, в которой пользователь может проверить первую радиокнопку и самостоятельно ввести имя или проверить вторую кнопку, выбрать значение в раскрывающемся списке и передать его. Почему-то я не могу заставить его работать должным образом, значение не проходит. Я хочу, чтобы любое значение, введенное или выбранное после радиокнопки, было опубликовано.
Введите имя
() _______ ИЛИ () (раскрывающийся список)
<td width=30% bgcolor=#CEDBE7>Student Name</td>
<td bgcolor=#CEDBE7 width=70%>
<input type=radio name=student_name value=><input type=text name=student_name size=50>
<b>OR</b>
<input type=radio name=student_name>
<select>
<option value=drop1>drop down option 1</option>
</select>
Я думаю, вы имеете в виду это
window.onload=function() { // when the page has loaded
var rads = document.querySelectorAll('input[name="student_rad"]'); // get all radios with name student_rad
for (var i=0;i<rads.length;i++) {
rads[i].onclick=function() { // assign onclick to each
if (this.id=="inp") { // the one deciding input
document.getElementById("stud_sel").selectedIndex=0; // reset select
document.getElementById("student_name").focus();
}
}
}
document.getElementById("stud_sel").onchange=function() { // when selecting
document.getElementById("sel").click(); // click the rad to select it
document.getElementById("student_name").value=this.value;
}
var rad = document.querySelector('input[name="student_rad"][checked]');
if (rad == null) {
document.getElementById("inp").click(); // check default
}
}
<td width=30% bgcolor=#CEDBE7>Student Name</td>
<td bgcolor=#CEDBE7 width=70%>
<input type="radio" name="student_rad" id="inp"/><input type="text" name="student_name" id="student_name" size=50 />
<b>OR</b>
<input type="radio" name="student_rad" id="sel" />
<select id="stud_sel">
<option value="">Please select</option>
<option value="Frank">Frank</option>
</select>
Ваш выбранный тег не имеет атрибута имени. При отправке формы переданные значения идентифицируются по именам элементов.
Кроме того, ваш HTML выглядит так, как будто он был написан 10 лет назад. Используйте CSS для стилизации элементов, используйте табличный тег только для реальных таблиц, а не для создания макета элементов, поместите значения атрибутов под кавычки.