jquery mobile无法隐藏提交按钮

Sat*_*000 24 jquery jquery-mobile

我正在使用最新版本的jquery mobile,我的问题是我给了一个提交按钮ID,然后添加了一些css来设置ID显示:none;

出于某种原因,这不起作用.

以前有人有这个问题吗?

no.*_*ing 23

如果没有任何代码,很难说你要做什么,但我认为问题源于jQuery Mobile没有为你现有的按钮设置样式,而是隐藏元素并将其包装成一个新div的样式并且表现得像一个按钮.

当前按钮的jQuery Mobile标记如下所示:

<div data-theme="e" class="ui-btn ui-btn-inline ui-btn-corner-all ui-shadow ui-btn-hover-e ui-btn-down-e" aria-disabled="false">
    <span class="ui-btn-inner ui-btn-corner-all">
        <span class="ui-btn-text">Submit</span>
    </span>
    <input type="submit" id="submit_btn" value="Submit" data-theme="e" data-inline="true" class="ui-btn-hidden" aria-disabled="false">
</div>
Run Code Online (Sandbox Code Playgroud)

因此,您要查找与该类最近的祖先ui-btn并隐藏它:

$('#submit_btn').closest('.ui-btn').hide();
Run Code Online (Sandbox Code Playgroud)

如果有更好的方法来做到这一点,我很想知道它.这是一个显示我的解决方案的小提琴.


小智 21

我一直用:

$("#<button-id>").parent().hide();
Run Code Online (Sandbox Code Playgroud)

它似乎工作正常,因为按钮或输入元素将始终是'包装'div的子项.

  • 为安全起见,我使用.parents('.ui-btn').hide().万一新版本或不可预见的情况会使<button>不是孩子而是<div>的孙子. (3认同)

eri*_*hak 11

在我需要在州之间切换的情况下,我遇到了上述答案的问题.

我发现将初始按钮包装在div中然后隐藏/显示它是最容易的.

含义:

<div id="someid">
<input type="button" class="submit_button" id="resend_invoice" value="Button"/>
</div>
Run Code Online (Sandbox Code Playgroud)

然后简单地解决包含div将像往常一样工作,因为所有jQuery移动div和类都在包含div中创建.