从页面隐藏表单完成仍然会影响提交时的搜索

时间:2014-07-01 19:28:10

标签: php jquery css

我正在尝试加载相同的表单,但根据屏幕大小稍微重新排列了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>

3 个答案:

答案 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。