我正在尝试加载相同的表单,但根据屏幕大小稍微重新排列了html。
我知道这可以用css实现,但这不是我所追求的,因为我有特定的页面,我不希望表单加载所以我使用PHP来检查我在哪个页面并显示/隐藏表单取决于页面。
search.php和search_mobile.php都使用相同的表格,除了小的html重新排列外,一切都是一样的。
提交时,即使隐藏了移动表单,它仍然会影响搜索结果。有没有办法完全隐藏它?我尝试了可见性:隐藏但这只是在视觉上隐藏它并显示:没有似乎也不起作用..
<form method="get" action="">
<?php include 'search.php'; ?>
<div id="mobile" style="display:none;">
<?php include 'search_mobile.php'; ?>
</div>
...more code
</form>
答案 0 :(得分:0)
这取决于加载移动设备或默认设置的条件。当你有这个条件时,你不必隐藏它,你只是不把它包含在页面上......结果html甚至不包含代码。
<form method="get" action="">
<?php
if( /* CONDITION FOR SHOWING MOBILE OR DEFAULT */ )
include 'search.php';
else
include 'search_mobile.php';
?>
...more code
</form>
答案 1 :(得分:0)
很难确切地知道发生了什么或者你想要实现什么,但我会检查每个表单标签,他们需要有自己的名称属性才能在页面上专门工作。
<form name="form1" method="get" action="">
<?php include 'search.php'; ?>
...more code
</form>
<form name="form2" method="get" action="">
<div id="mobile" style="display:none;">
<?php include 'search_mobile.php'; ?>
</div>
...more code
</form>
答案 2 :(得分:0)
是的,表单中的任何输入元素都会被提交,无论它是否可见。您可以通过在提交之前禁用元素来解决此问题。
$('form').on('submit', function() {
$(this).find(':input').not(':visible').attr('disabled', true);
});
无需更改HTML或PHP。