我有一个隐藏输入,它有一个默认值,可以根据与之关联的选定单选按钮的值进行更改。
因此,如果我选择第二个单选按钮,js_file_path隐藏输入的值将更改为"/shared“。很简单,我已经让它工作得很好了。
我的问题是,当我试图通过jQuery $("#js_file_path").val()获取js_file_path的值时,我总是在页面加载时获得隐藏字段的值。我如何获取它的当前值?我知道live()处理程序和它的用途,但不太确定如何在这个上下文中使用它,因为我试图将“js_file_path”的值作为函数参数传递。
任何帮助都是非常感谢的。
编辑:
这是检测文件路径值是否已更改的代码。
<input type="hidden" id="js_local_file_path" value="local">
<input type="hidden" id="js_shared_file_path" value="shared">
<input type="radio" name="js_type_for_file_upload" value="local" checked>
<input type="radio" name="js_type_for_file_upload" value="shared">
<input type="hidden" id="js_file_path" value="local">
$("[name=js_type_for_file_upload]").live( "change", function(){
switch( $(this).val() ){
case "local":
$("#js_file_path").val( $("#js_local_file_path").val() );
// do other stuff
break;
case "shared":
$("#js_file_path").val( $("#js_shared_file_path").val() );
// do other stuff
break;
}
});`因此,当我选择第二个单选按钮并检查DOM时,我可以看到js_file_path的值已被正确地更改为"shared“。
然后,我尝试继续执行一个函数调用,当单击一个id为" button“的按钮时,该函数将js_file_path的值作为其参数。
$("#button").click( function(){
a_name_of_a_function( $("#js_file_path").val() );
});为了进行调试,我在a_name_of_a_function()中放置了一个警告提示符,以输出其file_path参数值。
function a_name_of_a_function( file_path ){
alert( file_path );
// other stuff
}即使我选择了“共享”单选按钮,警报提示仍将始终显示“本地”。
发布于 2011-07-11 01:09:12
基于您的示例HTML,您甚至不需要进行切换:
$("input[name=js_type]").live( "change", function(){
$("#js_file_path").val( $(this).val() );
});工作示例:http://jsfiddle.net/AlienWebguy/2JrWM/2/ --我只是简单地将隐藏字段更改为文本字段,这样您就可以在不查看控制台的情况下看到它的运行情况。
编辑:这是小提琴上更新的代码。工作正常:
$("input[name=js_type_for_file_upload]").live( "change", function(){
$("#js_file_path").val( $(this).val());
});
$('#button').live('click',function(){
alert($("#js_file_path").val());
});https://stackoverflow.com/questions/6642172
复制相似问题