0
当用户禁用javascript时,我想让ajax.beginform根本不做任何事情,而不是提交定期的完整页面发布请求。什么是实现这一目标的正确方法?mvc - ajax.beginform - 禁用javascript时禁用
当用户禁用javascript时,我想让ajax.beginform根本不做任何事情,而不是提交定期的完整页面发布请求。什么是实现这一目标的正确方法?mvc - ajax.beginform - 禁用javascript时禁用
无论你做什么,如果页面中有form
标记,并禁用JavaScript,它始终可以提交。即使您删除了action
属性,它也会提交到同一页面。因此,您可以使用<noscript>
标记向JavaScript禁用的用户提供替代标记。另一种可能性是用CSS隐藏提交按钮并用javascript显示(这样只有启用了JS的用户才能看到它),但这并不理想,因为在输入内部输入时仍然可以通过按Enter来提交表单。
我认为更好的办法是离开表单提交定期请求,并在你的控制器动作处理这种情况,并作出相应的反应:
if (Request.IsAjaxRequest())
{
// act as normal
return PartialView();
}
else
{
// the user had javascript disabled
return View();
}
如果你看所以,当你有JS禁用,不能投票,最喜欢等等。你可以点击它,但它什么都不做。也许它在幕后做了些什么 – TPR 2010-11-08 08:54:33
它在幕后做了什么,它使用'span'作为按钮而不是'submit'按钮,并使用jQuery将click处理程序悄悄地附着到它们上面。因此,如果用户禁用了JavaScript,那么这些点击处理程序就不会被附加,因为您正在点击一个简单的“span”,所以没有任何反应。 – 2010-11-08 08:57:52