2010-11-08 76 views

回答

1

无论你做什么,如果页面中有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(); 
} 
+0

如果你看所以,当你有JS禁用,不能投票,最喜欢等等。你可以点击它,但它什么都不做。也许它在幕后做了些什么 – TPR 2010-11-08 08:54:33

+1

它在幕后做了什么,它使用'span'作为按钮而不是'submit'按钮,并使用jQuery将click处理程序悄悄地附着到它们上面。因此,如果用户禁用了JavaScript,那么这些点击处理程序就不会被附加,因为您正在点击一个简单的“span”,所以没有任何反应。 – 2010-11-08 08:57:52