这个想法:我通过常规Javascript或jQuery设置type =“hidden”的输入值。
问题:jQuery和document.getElementById都不会找到隐藏的输入,即使我绝对确定选择器是正确的并且没有冲突的元素。
代码: 我不能真正发布它的大部分内容,因为它充满了相当复杂的PHP,当我看到它时会让我感到困惑。
这是javascript:
$("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);
注意:选择器没有问题,“输入”是我用来引用隐藏的不同元素。
这是HTML:
<input type="hidden" name="s<?=$step_counter?>_budget_hidden"
id="s<?=$step_counter?>_budget_hidden" value="0" />
代码有点脱离上下文,但它更多是Javascript的一般问题,而不是语法错误。想法?
答案 0 :(得分:2)
在$("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);
中,您在隐藏ID中的第一个下划线之前取两个字符。但是你的隐藏ID只有一个char的'
修改强>
好的,在编辑问题之前隐藏了<?= ?>
。
你是否在body onload事件后调用你的脚本? EX:
$(document).ready(function(){
$("#" + input.id.substr(0,2) + "_budget_hidden").bind("keyPressed",function(){
$("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);
}
});
答案 1 :(得分:1)
FYI:我们可以使用jQuery获取隐藏的输入值,甚至我们也可以使用jQuery编辑任何隐藏的输入值。
我认为使用'substr'方法获取隐藏值的方式会导致一些问题。您正在使用substr(0, 2)
,因此请确保变量$step_variable
是一位数字,否则您的代码将无法返回正确的结果。
我在下面给出一些示例代码,检查一次。
这是javascript:
var input_id = $("hidden_val").attr("id").substr(1); $("#" + input_id + "_budget_hidden").val(budg_total);
这是HTML:
input type="hidden" class="hidden_val" name="s_budget_hidden" id="s" value="0"
我认为这会对你有所帮助。如果您不遵循此流程来解决您的问题,请告诉我。
答案 2 :(得分:0)
我认为input.id.substr(0,2)表示从字符串的开头开始,取两个字符并使用它。
http://www.w3schools.com/jsref/jsref_substr.asp
尝试使用Firebug查看该方法调用的结果。