【问题标题】:Setting the value of a hidden input设置隐藏输入的值
【发布时间】:2010-07-07 17:35:52
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery html forms hidden


    【解决方案1】:

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

    编辑

    好的,&lt;?= ?&gt; 在问题编辑之前被隐藏了。

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

    $(document).ready(function(){
        $("#" + input.id.substr(0,2) + "_budget_hidden").bind("keyPressed",function(){
            $("#" + input.id.substr(0,2) + "_budget_hidden").val(budg_total);
         }
    });
    

    【讨论】:

    • 我在 jQuery 选择器中引用的“输入”变量在 onkeypress 事件中被调用。
    • 哦,我明白你在说什么。该事件是在输入本身上内联定义的。 onkeypress="updateDifferences(this)" 所以理论上这应该不是问题。
    • @Will 你怎么能在隐藏输入上有一个onkeypress?它们没有显示出来。
    • onkeypress 是在不同的文本输入上,它调用了一个改变隐藏输入的函数。
    【解决方案2】:

    仅供参考:我们可以使用 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" class="hidden_​​val" name="s_budget_hidden" id="s" value="0"

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

    【讨论】:

    • 这是一个很好的观点,可能会导致一些潜在的错误。我只是决定改用explode,避免了一些讨厌的麻烦。但是,我正在试验的特定输入的 step_counter 值为 2,因此无论如何它都无关紧要。我不是 110% 相信选择器是正确的——我已经将它呼应出来,它显示的内容与我试图访问的隐藏输入的 id 完全相同。这是 jQuery/Javascript,而不是选择器本身。
    【解决方案3】:

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

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

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

    【讨论】:

    • 是的,这就是子字符串的作用。正如我所说,这是一个脱离上下文的相当复杂的系统,但我保证特定的选择器是准确的,并且对应于页面中隐藏的表单元素。我用过 Firebug,没有任何错误或警告。
    猜你喜欢
    • 2019-01-06
    • 1970-01-01
    • 2011-06-15
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 2019-03-07
    • 2013-04-25
    • 1970-01-01
    相关资源
    最近更新 更多