我的页面上有几个表单,它们使用相同的功能来处理它们。在我想要添加一个单选按钮表单以启用/禁用数据库中的记录之前,所有内容都一直在花哨。
我已经设置了页面,以便在元素附近有一个隐藏的表单。用户单击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//
答案 0 :(得分:0)
我有一个类似的问题,其中第一个选项是空值,所以我使用了它(尽管它是用于选择输入)
$(this).val($(this + "option:first").val());