2016-12-27 119 views
0

如何根据页面的宽度防止提交页面上的表单部分?根据宽度阻止提交表单

即,如果该网页是之间900px1200px仅形成输入/与.regular-form类选择项目将被包含在表单提交。

+0

你有几个解决方案,但我要说,需要更多的细节,充分了解你怎么想这将发挥作用。 –

+0

您的问题表述的方式,功能没有意义。我*猜测*这是一个响应式表单,而您不希望这些输入提交的原因是因为它们在这个宽度上不可见。如果是这样,你不应该复制“我应该显示这个输入?”逻辑分成“我应该提交这个输入吗?”逻辑。相反,使用CSS媒体查询来显示/隐藏它们,并使用JS来表示“不要提交隐藏的内容”。例如http://stackoverflow.com/questions/1374147/how-to-avoid-sending-input-fields-which-are-hidden-by-displaynone-to-a-server这将更容易维护。 –

回答

2

可以确保相关的元素不一部分的DOM,这将确保他们也不会在提交中发送。

您可以使用此代码,可以这样做:

if($(window).width() > 900 && $(window).width() < 1200) { 
    $('input,select,textarea').not('.regular-form').remove() 
} 
+0

我认为它应该是'not('。regular-form')。remove()'根据OP –

+1

正确:)感谢那! – Dekel

+0

任何弹力都不是JS主人。那么,这会是可行的代码吗? ($(window).width()> 990){('input,select,textarea')。not('。regular-form')。remove() ) } else if($(window).width()> 797 && $(window).width()<991){('input,select,textarea')。not('。short-form “)卸下摆臂() }否则{ } ' – CRAIG

0

我不知道,如果你需要考虑的窗口被动态调整大小与否,那么一个简单的解决办法是这样的:

if($(window).width() > 900 && $(window).width() < 1200) 
{ 
    $('.regular-form').prop('disabled', false); 
} 
+1

@Dekel为什么呢?在我看来,它应该。 https://www.w3.org/TR/html401/interact/forms.html#disabled –