:radio和:检查没有传递给我的var

时间:2011-01-03 22:25:45

标签: jquery ajax forms coldfusion

我的页面上有几个表单,它们使用相同的功能来处理它们。在我想要添加一个单选按钮表单以启用/禁用数据库中的记录之前,所有内容都一直在花哨。

我已经设置了页面,以便在元素附近有一个隐藏的表单。用户单击div并且我的脚本抓取元素的html并将其放入var中,显示表单并将html(var)转储到textarea并隐藏元素。进行一些更改,单击提交,表单提交,隐藏并使用新的html(facebook样式)重新显示元素。没问题。

当我编写代码来捕获“已选中”的单选按钮时,它可以正常工作。但是,如果我更改为其他单选按钮,表单不会捕获新值。怎么了?

if (field == "disabled") {
            var txt = $('#disabled input[name="product_disabled"]:radio').val();
        } else {
            var txt = $(this).html();
        };

这可以捕获价值,没问题......

但是,在我的表单处理程序中,这只是获取上述信息,而不是表单中的新信息。

var newtxt = $('#disabled input[name="product_disabled"]:radio').val();

很奇怪......

这是完整的jQuery

//Begin editing section - click handler on text shows the form//
$('[class^=edit_]').click(function(){
    var element = $(this).attr('class');
    var field = element.split('_')[1];
    if (field == "disabled") {
            var txt = approval;
        } else {
            var txt = $(this).html();
        };
    //var txt = $(this).html();
    //$('[class='+element+']').hide();
    $(this).hide();
    $('[id='+field+']').show();
    $('[class=product_'+field+']').val(txt);
    $('[class=product_'+field+']').focus();             
});
//Process the edit forms//
$('form').submit(function(e){
    e.preventDefault();
    alert($(this).html());
    var element = $(this).attr('id');
    var newtxt = $(this + "input[name='product_disabled']:radio").val(); //$('[class=product_'+element+']').val();
    var product = pid;
    var productImage = imageUrl;
    var rb = $('#disabled input[name="product_disabled"]:radio').val();

    $.getJSON("cfc/editProduct.cfc?method=updateText&returnformat=json", 
                {column:element, id:product, updateText:newtxt, image:productImage },
                function(response) {
                    //Handle the result
                    if(response.MESSAGE == "success") {
                        $('form').hide();
                        $('[class=edit_'+element+']').show();
                        $('[class=edit_'+element+']').html(newtxt);
                    } else {
                        alert(response.MESSAGE);
                    }
                });
});
//End editing section//

1 个答案:

答案 0 :(得分:0)

我有一个类似的问题,其中第一个选项是值,所以我使用了它(尽管它是用于选择输入)

$(this).val($(this + "option:first").val());