我有以下HTMl:
<input id="brandID" name="brandID" type="hidden" value="" />
<select id="selectList" class="textfield70pc" name="selectList">
<option selected="" value="221">A</option>
<option value="4673">B</option>
</select>
更改选择框的值后,我需要填充此输入字段。 我尝试过类似的东西,但它没有用。
jQuery('#selectList').change(function(){
jQuery('#brandID').attr('value', '123123');
});
建议任何人?
更新
这虽然有效:
document.getElementById('brandID').value = '123'
但我想使用jQuery。
答案 0 :(得分:5)
可能的事件值:click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,keypress,keyup
目前不支持:模糊,焦点, mouseenter,mouseleave,change,submit
如果您想使用直播,请使用live query
编辑:上面的代码应该按原样运行,所以也许你的selectList格式不正确?
这个基本的HTML使上述功能对我有用:
<select id="selectList">
<option>1</option>
<option>2</option>
</select>
嗯,也许你只是没有看到它更新HTML,但它确实更新了DOM(你使用的是firebug吗?)我添加了一个警告来显示值,它显示了正确的值
$(document).ready(function(){
jQuery('#selectList').change(function(){
jQuery('#brandID').attr('value', '123123');
alert($('#brandID').val());
});
})
答案 1 :(得分:0)
jQuery('#selectList').live('change', function(){
jQuery('#brandID').value = '123123';
});
请记住,在选择失去焦点之前,IE不会触发onchange事件。
答案 2 :(得分:0)
这有用吗?
jQuery('#selectList').bind('change', function(){
jQuery('#brandID').val('123123');
});
编辑:
来自jquery Live()documentation page:
在jQuery 1.3中添加:将处理程序绑定到所有当前和未来匹配元素的事件(如单击)。也可以绑定自定义事件。 可能的事件值:click,dblclick,mousedown,mouseup,mousemove,mouseover,mouseout,keydown,keypress,keyup 目前不支持:模糊,焦点,鼠标中心,鼠标移动,更改,提交
答案 3 :(得分:0)
$(document).ready(function()
{
$('#selectList').change(function() { $('#brandID').val('123123'); });
});
我的假设:selectList在某处是一个有效的ID。
如果这是一个实际的选择列表(仅由名称暗示),您是否关心选择的内容?
$(document).ready(function()
{
$('#selectList').change(function() {
mychoice = $('#selectList option:selected').text();
$('#brandID').val(mychoice);
});
});
答案 4 :(得分:0)
在阅读了所有这些对您无效的好回复之后,我不得不问一个基本问题 - 您是在$(document).ready()
之内运行此Javascript还是在<script>
之后运行<select>
标记元素?它必须是一个或另一个,以便在设置其属性之前包含元素的DOM树。