【问题标题】:Use checkbox to set val() for field使用复选框为字段设置 val()
【发布时间】:2009-06-29 03:04:27
【问题描述】:

Total N00b 在这里,我有一个长表单向导,需要一个步骤来根据单选按钮动态显示/隐藏。到目前为止,所有代码都很酷。

function checkRb () {
            if($(this).is(":checked")){
            //yes
            $("#do_frick").val("step5");
            //alert ("yeah");
            }else {
            //no
            $("#do_frick").val("submit_step");
            //alert ("no");
            }
            }

问题在于隐藏字段“#do_frick”位于页面下方的几个步骤中。如果我将它放在与复选框相同的 div 中,则值更改没有问题。将“#do_frick”放在表单的下方,它不会改变。

我希望 $(this) 只查看当前 div 而不是整个文档。在一位非常优秀的程序员的帮助下,我走到了这一步,不想用 N00b 问题进一步惹恼他,非常感谢任何帮助:)

看来,如果我将“#do_frick”放在页面下方的 div 中,表单向导会将其设置为 display:none 并且 div 内的任何内容都无法设置...这是正确的吗?

【问题讨论】:

  • 你还在用什么东西?像 PHP、asp.net、纯 html 还是什么?
  • 基于 PHP 但测试只在 HTML 上

标签: javascript jquery


【解决方案1】:

请查看您网页的来源,以检查隐藏字段的ID是什么,几级后。如果ID相同,那么位置应该没有问题。

this 不是当前 div。在事件处理程序中,它表示引发事件的对象。您应该查看jquery.com 了解更多信息。

PS:- 尝试像这样设置隐藏字段的值

 $("#do_frick").attr("value","submit_step");

【讨论】:

    【解决方案2】:

    按照上面的建议在生成的 html 中查找 id。

    还要寻找任何其他元素共享的任何重复 id,这会搞砸。

    【讨论】:

    • 我所针对的隐藏字段是否有可能位于具有内联样式“display: none;”的
      中由表单向导应用?
    • 它是不可见的,但是重复的 id 肯定会发生冲突。尽可能使用唯一的 id。
    【解决方案3】:

    所以经过很多面条刮擦后,答案是 jQuery 中的一个小错误/打嗝

    只要字段位于具有规则“dsiaply: none;”的 div 中应用 jQuery 无法到达内部并更改它。用萤火虫检查,该字段有一个附加值“禁用=''”。使用命令

    $('#do_frick').get(0).disabled = false
    

    整理出来..最后:)

    最终代码:

    function checkRb () {
                if($(this).is(":checked")){
                //yes
                $('#do_frick').get(0).disabled = false //The important bit
                $("#do_frick").val("step5");
                //alert ("yeah");
                }else {
                //no
                $("#do_frick").val("submit_step");
                //alert ("no");
                }
                }
    

    【讨论】:

      猜你喜欢
      相关资源
      最近更新 更多
      热门标签