1

想法:我通过常规 J​​avascript 或 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 的一般问题,而不是语法错误。想法?

4

3 回答 3

2

$("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);隐藏 ID 中的第一个下划线之前取两个字符。但是您的隐藏 id 只有一个 char 's'

编辑

好的,<?= ?>在问题编辑之前被隐藏了。

您是否在正文 onload 事件之后调用您的脚本?前任:

$(document).ready(function(){
    $("#" + input.id.substr(0,2) + "_budget_hidden").bind("keyPressed",function(){
        $("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);
     }
});
于 2010-07-07T17:38:58.947 回答
1

仅供参考:我们可以使用 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:

    输入类型="hidden" 类="hidden_​​val" name="s_budget_hidden" id="s" value="0" 

我想这会对你有所帮助。如果您不遵循此流程来解决您的问题,请告诉我。

于 2010-07-07T18:05:46.447 回答
0

我认为 input.id.substr(0,2) 说从字符串的开头开始,取 2 个字符并使用它。

http://www.w3schools.com/jsref/jsref_substr.asp

尝试使用 Firebug 来查看该方法调用的结果。

于 2010-07-07T17:39:34.920 回答