WP搜索表单上的更改按钮类型[关闭]

问题描述 投票:0回答:1

我有一个可能很简单的问题,真让我发疯。

我的网站标题上有一个搜索框。我更喜欢保持背景透明,因为它与网站的整体美观效果更好。

[许多用户单击搜索按钮(放大镜)而不是直接在表单上书写,这使他们进入空白结果页面,在该页面中他们实际上无法进行搜索。我已经创建了一个单独的“搜索”页面,我希望使用该按钮将用户定向到该单独的“搜索”页面,而不是一个空的结果页面。

[我想我可以通过将按钮类型从“提交”更改为“按钮”来解决此问题,但是我不确定应该如何编写该代码。

谢谢!

Here's the link to my website.

javascript css wordpress button search-form
1个回答
0
投票

我认为,如果您禁用提交按钮,直到在搜索文本字段中输入一些内容,这将解决您的问题。

在您的标记中,按钮没有ID。但是您也可以按类执行此操作,但是您必须执行“ for”子句,因为类(或更确切地说,函数getElementsByClassName)要被多次使用:

var elems = document.getElementsByClassName("search-submit");
for(var i = 0; i < elems.length; i++) {
    elems[i].disabled = true;
}

您现在已禁用search-submit类的所有按钮。在下一步中,如果要在搜索字段中输入文本,则要启用按钮。

为此,您可以添加EventListener以检测任何更改:

var yourfields = document.getElementsByClassName("search-field");
for(var x = 0; x < yourfields.length; x++) {
    yourfields[x].addEventListener ("input", function () {
        // this code runs when the input fields value is changed
    });
}

因此,您可以使用类名从头开始通过代码运行代码,并设置elems[i].disabled = false;而不是true


更好的解决方案是:

将ID添加到搜索字段(topbar-搜索),将ID添加到提交按钮(topbar-submit)。

<input type="search" id="topbar-submit" class="search-field" placeholder="" value="" name="s" title="Buscar:">

<button type="submit" id="topbar-submit" class="search-submit">
            <svg aria-hidden="true" focusable="false" role="presentation" xmlns="http://www.w3.org/2000/svg" width="20" height="21" viewBox="0 0 20 21">
                <path fill="currentColor" fill-rule="evenodd" d="M12.514 14.906a8.264 8.264 0 0 1-4.322 1.21C3.668 16.116 0 12.513 0 8.07 0 3.626 3.668.023 8.192.023c4.525 0 8.193 3.603 8.193 8.047 0 2.033-.769 3.89-2.035 5.307l4.999 5.552-1.775 1.597-5.06-5.62zm-4.322-.843c3.37 0 6.102-2.684 6.102-5.993 0-3.31-2.732-5.994-6.102-5.994S2.09 4.76 2.09 8.07c0 3.31 2.732 5.993 6.102 5.993z"></path>
            </svg>
        </button>

因此,您可以精确定位所需的两个元素,并使代码更好。设置好ID后,您只需在主题文件夹的footer.php中添加此javascript代码即可:

// jQuery
    jQuery(document).ready( function () {
        // get your submit button and disable it
        var topbarsubmit = document.getElementById("topbar-submit");
        topbarsubmit.disabled = true;

        // get your search field and add event listener to enable submit button on input
        var topbarsearch = document.getElementById("topbar-search");
        topbarsearch.addEventListener ("input", function () {
            topbarsubmit.disabled = false;
        });
    });

这样,您的按钮将被禁用,直到您的搜索字段中有一些输入为止。如果您想进一步了解“禁用”属性,请查看:https://www.w3schools.com/tags/att_button_disabled.asp

希望这会有所帮助!

© www.soinside.com 2019 - 2024. All rights reserved.