使用复选框为字段设置value()

时间:2009-06-29 03:04:28

标签: javascript jquery

这里总计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中,表单向导会将显示设置为:none并且div中的任何内容都无法设置...这是否正确?

3 个答案:

答案 0 :(得分:1)

请查看您网页的来源,以便在几个步骤时查看隐藏字段的 ID 。如果ID相同,那么位置应该不是问题。

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

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

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

答案 1 :(得分:0)

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

同时查找任何其他元素共享的任何重复ID,这将搞乱事情。

答案 2 :(得分:0)

在面对很多面条后,答案是jQuery中的一个小错误/打嗝

每当字段位于具有规则“dsiaply:none;”的div中时应用jQuery无法到达内部并进行更改。使用firebug进行检查,该字段具有附加值“disabled =''”。使用命令

$('#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");
            }
            }