JQuery Mobile - 显示内联的HTML表单

时间:2011-12-22 15:49:31

标签: jquery html forms jquery-mobile html-lists

目标:在Jquery Mobile的同一行显示文本框和提交按钮。

问题:它们不会显示在同一行。

我已多次尝试在同一行显示文本框和提交按钮,但它永远不会有效。这是我的代码和我使用的组合...

<form method="GET" style="display: inline-block;">
     <input type="text" name="id" value="Other">
     <input type="submit" data-type="button" data-icon="plus" value="Add">
</form>

那不起作用。

<form method="GET">
   <span>
     <input type="text" name="id" value="Other">
     <input type="submit" data-type="button" data-icon="plus" value="Add">
   </span>
</form>

这两个都没有。

<form method="GET">
      <ul style="display: inline; list-style-type: none;">
          <li style="display: inline;"><input type="text" name="id" value="Other"></li>
          <li style="display: inline;"><input type="submit" data-type="button" value="Add"></li>
       </ul>
</form>

我做错了什么,如何实现目标?

谢谢圣诞快乐!

3 个答案:

答案 0 :(得分:14)

网格布局是否有效?

HTML:

<fieldset class="ui-grid-a">
    <div class="ui-block-a">
            <input type="text" name="id" value="Other">
    </div>
    <div class="ui-block-b">
            <input type="submit" data-type="button" data-icon="plus" value="Add">
    </div>
</fieldset>

答案 1 :(得分:6)

您可以使用媒体查询显示带有文本输入的内联按钮以获得更大的屏幕宽度,并在提交按钮上显示文本框以获得更小的屏幕宽度:

form .ui-input-text {
    display : inline-block;
    width   : 65%;
    vertical-align : middle;
}
form > .ui-btn {
    display : inline-block;
    width   : 25%;
    vertical-align : middle;
}
@media all and (max-width:480px) {
    form .ui-input-text {
        width   : 100%;
    }
    form > .ui-btn {
        width   : 100%;
    }
}

以下是演示:http://jsfiddle.net/fmJGR/

我正在使用jQuery Mobile添加的类来定位元素,这对于使用提交按钮特别有用,因为它是jQuery Mobile初始化后的HTML结构,它不像每个初始化元素。

以下是jQuery Mobile初始化后提交按钮的HTML变为:

<div data-theme="c" class="ui-btn ui-btn-icon-left ui-btn-corner-all ui-shadow ui-btn-up-c" aria-disabled="false">
    <span class="ui-btn-inner ui-btn-corner-all" aria-hidden="true">
        <span class="ui-btn-text">Add</span>
        <span class="ui-icon ui-icon-plus ui-icon-shadow"></span>
    </span>
    <input type="submit" value="Add" data-icon="plus" data-type="button" class="ui-btn-hidden" aria-disabled="false">
</div>

如果您希望支持IE7,则需要添加以下代码,因为IE7无法理解display : inline-block

form .ui-input-text {
    display : inline-block;
    width   : 65%;
    vertical-align : middle;

    /*Fix for IE7*/
    *display : inline;
    zoom     : 1;
}
form > .ui-btn {
    display : inline-block;
    width   : 25%;
    vertical-align : middle;

    /*Fix for IE7*/
    *display : inline;
    zoom     : 1;
}

答案 2 :(得分:0)

将它们添加到一行HTML表格中的两个单独的列中也可以。