用javascript/jquery替换选择输入
Replace a select input with javascript/jquery
我有一个有2个选区的页面,当你在第一个选区选择值X
时,它会改变第二个选区。
我试着这样做:
<script language="JavaScript" type="text/JavaScript">
function makeRequestObject() {
var xmlhttp = false;
try {
xmlhttp = new ActiveXObject('Msxml2.XMLHTTP');
} catch (e) {
try {
xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
} catch (E) {
xmlhttp = false;
}
}
if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
}
function replace2(id) {
var xmlhttp = makeRequestObject();
var file = 'http://example.com/index.php/result/new_select/'
xmlhttp.open('GET', file + id, true);
xmlhttp.onreadystatechange = function () {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var content = xmlhttp.responseText;
if (content) {
document.getElementById('replace').innerHTML = content;
//$( "div.test" ).replaceWith(content);
}
}
}
xmlhttp.send(null)
}
</script>
形式是:
<th id="replace">
<?php
$fruit_options = array();
$fruit_options[-1] = 'Select ALL';
foreach ($tests as $fruit) {
$fruit_options[$fruit->ID] = $fruit->Nume;
}
echo form_dropdown('test', $fruit_options, $fruit->ID, $fruit->Nume);
?>
</th>
一切正常,当我选择第一个下拉菜单时,第二个选择将被修改(我用:echo form_dropdown('test1', $fruit_options, -1, 'onchange="replace2(this.value)"');
调用它)
但是当我按"提交"时,控制器看不到post test
的值。
在result/new_select/id
中,我有这样的东西:
<?php
$fruit_options = array();
$fruit_options[-1] = 'Select ALL';
foreach ($tests as $fruit) {
$fruit_options[$fruit->ID] = $fruit->Nume;
}
echo form_dropdown('test', $fruit_options, $fruit->ID, $fruit->Nume);
?>
有谁知道为什么我的代码不能工作,或者有什么更好的方法来做到这一点?
LE
<form action="http://example.com/index.php/test/query" method="post" accept-charset="utf-8">
<table>
<th>
<select name="test1" onchange="replace2(this.value)">
<option value="-1" selected="selected">Select ALL</option>
<option value="515">515</option>
<option value="252">252</option>
<option value="327">327</option>
<option value="409">409</option>
</select>
</th>
<th id="replace">
<select name="test" 315>
<option value="-1">Select ALL</option>
<option value="1">1</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="315" selected="selected">315</option>
</select>
</th>
<th>
<input type="submit" name="mysubmit" value="Search!" />
</th>
</table>
</form>
在控制器中,我看到test1
的值,但我看不到test
的值。
这里的问题似乎是您的表结构。您忘记了表需要行<tr>
和列<td>
,因此当JS追加任何HTML时,它将它们放在form
之外,因此您的表单请求不发送正确的POST信息。
像这样重构你的表:
<form method="post">
<table>
<tr>
<td>
<?php
$fruit_options = array();
$fruit_options[-1] = 'Select ALL';
foreach ($tests as $fruit) {
$fruit_options[$fruit->ID] = $fruit->Nume;
}
echo form_dropdown('test1', $fruit_options, -1, 'onchange="replace2(this.value)"');
?>
</td>
</tr>
<tr>
<td id="replace">
</td>
</tr>
<tr>
<td>
<input type="submit"/>
</td>
</tr>
</table>
</form>
相关文章:
- 基于单选框更新页眉,选中并选择输入文本
- 我想在选择输入文件上显示图像
- 指令中选择输入的双向绑定不起作用
- 调整从选择输入中获取数据并将其放入 DIV 的 jQuery 代码
- JS根据类型和名称选择输入
- jQuery使用这个获取任何选择输入的name属性
- 无法检索从窗口.本地存储中选择输入值
- 使用Javascript与选择输入交互
- 在Meteor中加载带有采集数据的选择输入字段
- 使用 jquery 控制两个选择输入的组合值
- JavaScript 中的 if 语句,用于从选择输入中获取值
- 用文本输入填充选择输入
- 我无法使用jquery选择输入的值
- 如何在选择“输入颜色”后从中获取新的颜色值
- 如何添加单选按钮和复选框将选择输入到一起以形成JavaScript输出
- jQuery;Ajax-在页面加载时将项目加载到选择输入
- JQuery 验证器不适用于选择输入
- 如何使用 Reactjs 选择输入中的所有文本,当它聚焦时
- Angularjs:如何在页面加载时预先选择输入文本字段
- Jquery 不能在表单内选择输入元素,但在表单外部选择输入元素