JQuery Mobile - 显示内联的HTML表单

Joe*_*Joe 7 html forms jquery html-lists jquery-mobile

目标:在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>
Run Code Online (Sandbox Code Playgroud)

那没用.

<form method="GET">
   <span>
     <input type="text" name="id" value="Other">
     <input type="submit" data-type="button" data-icon="plus" value="Add">
   </span>
</form>
Run Code Online (Sandbox Code Playgroud)

这也没有.

<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>
Run Code Online (Sandbox Code Playgroud)

我做错了什么,我怎样才能实现目标?

谢谢,圣诞快乐!

Phi*_*ord 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>
Run Code Online (Sandbox Code Playgroud)

  • <div class ="ui-block -a"style ="width:75%"> <div class ="ui-block-b"style ="width:25%"> (6认同)

Jas*_*per 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%;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是一个演示: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>
Run Code Online (Sandbox Code Playgroud)

如果你想支持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;
}
Run Code Online (Sandbox Code Playgroud)