我有两个单选按钮,我设置为默认值(第一个选中的值单选按钮是加载时的默认按钮),如下所示:
var listing_type;
var shipping_location;
$(":radio[name='type'][value='1']").attr('checked', 'checked');
$(":radio[name='shipping'][value='1']").attr('checked', 'checked');
当用户点击单选按钮中的某些值时,会捕获如下值:
$('input:radio[name=type]').click(function () {
listing_type = $(this).val();
});
$('input:radio[name=shipping]').click(function () {
shipping_location = $(this).val();
});
这段代码的第二部分工作得很好,当用户点击一些单选按钮时,值正确地传递给我的MVC Action。
但是,如果用户没有点击单选按钮上的任何内容(即将它们保留为页面加载时的默认值)并单击“搜索”按钮,则无法捕获该值...
我的MVC Action中的值由于某种原因始终为null,即使它们不应该是。以下是我传递值的方法,这里是Action的C#代码:
$.post("/Search/Index", { keywords: $('.txtSearch').val(), type: /* listing_type */ <=> $('input[name=type]:checked').val(), location: $('input[name=shipping]:checked').val() <=> /*shipping_location*/ }, StartLoading())
.done(function (data) {
StopLoading();
var brands = $('<table />').append(data).find('#tableProducts').html();
$('#tableProducts').html(brands);
$('#tableProducts thead').show();
});
}
这就是行动:
public ActionResult Index(string keywords, string type, string location)
{
// If the user doesn't interacts with the radio buttons and just enters the search term (ie. keywords) the type and location variables are null).
if ((keywords != null && keywords != "") && (type != null && type != "") && (location != null && location!=""))
{
// do something here....
}
return View();
}
所以现在我的问题是:
如果用户没有与它们交互,我怎么能从单选按钮传递默认值(即传递我在页面加载时设置的默认值)???
答案 0 :(得分:1)
尝试一下:
$('input:radio[name="type"]').filter('[value="1"]').attr('checked', true);
$('input:radio[name="shipping"]').filter('[value="1"]').attr('checked', true);