Jquery移动分组按钮和输入框

时间:2012-10-18 14:12:24

标签: jquery-mobile

在JQuery Mobile中,我试图在中间对输入框进行分组。 以下是我的代码

<div data-role="controlgroup" data-type="horizontal">
        <a href="#" data-role="button">Yes</a>
        <input type="text"  value="0" min="0" max="20" size="2"  />
        <a href="#" data-role="button">Maybe</a>
    </div>

这是result

任何想法都会很棒?

3 个答案:

答案 0 :(得分:1)

单选按钮需要一个激进的显示案例:内联!重要; ...这是一个包含2行,一个普通按钮和一个迷你按钮的列表。

希望它有所帮助。 http://jsfiddle.net/den232/5mVv8/

    .floatleft {
    float:left;
 }
.floatright {
    float:right;
 }
.forceinline{  /* Prevent fieldcontain from doing a BLOCK thing */
    display:inline !important;
}
.textwidth {  /* limit width of input fields */
    width:80px;
}
.closespacing { /* controls spacing between elements */
    margin:0px 5px 0px 0px;
 }
.bigselect {   /* centers select with big buttons */
    padding: 0px;
    margin:2px 5px 0px 0px;
 }
.biginputheight {   /* matches text input height to big buttons */
    padding-top:10px !important;
    padding-bottom:12px !important;
}
.miniinputheight { /* matches text input height to minibuttons */
    padding-top:5px !important;
    padding-bottom:5px !important;
}

<div data-role="page" class="type-home">

<ul data-role="listview">
  <li  data-role="fieldcontain">first LI line</li>
  <li  data-role="fieldcontain">

    <div data-role="fieldcontain" class= 'forceinline'>
      <div class='floatleft closespacing'>    
        <fieldset data-role="controlgroup" data-type="horizontal">
          <input type="radio" name="radio-view" id="radio-view-a" value="aa"  />
          <label for="radio-view-a">A1</label>
          <input type="radio" name="radio-view" id="radio-view-b" value="bb"  />
          <label for="radio-view-b">B1</label>
        </fieldset>
      </div>
    </div>

    <div  class='floatleft textwidth'>
      <input type="text" placeholder="left" class='biginputheight'></input>
    </div>  

  </li>
  <li  data-role="fieldcontain">

    <div data-role="fieldcontain" class= 'forceinline'>
      <div class='floatleft closespacing'>    
        <fieldset data-role="controlgroup" data-type="horizontal" data-mini='true'>
          <input type="radio" name="radio-view" id="radio-view-a" value="aa"  />
          <label for="radio-view-a">AA</label>
          <input type="radio" name="radio-view" id="radio-view-b" value="bb"  />
          <label for="radio-view-b">BB</label>
        </fieldset>
      </div>
    </div>

    <div  class='floatleft textwidth'>
      <input type="text" placeholder="e2" class='miniinputheight'></input>
    </div>  

     <div class='floatright closespacing'>
      <div  class='floatright textwidth'>
        <input type="text" placeholder="e3" class='miniinputheight'></input>
      </div>  
    </div>
  </li>
  <li  data-role="fieldcontain">last LI line</li>

</ul><!-- /listview -->  

答案 1 :(得分:0)

默认情况下,按钮占据视口的整个宽度。尝试使用data-inline属性来更改它。

http://jquerymobile.com/demos/1.2.0/docs/buttons/buttons-inline.html

您还需要一些CSS来使输入看起来正确。以下似乎对我有用。您可能需要根据您的需要调整宽度。

input.ui-input-text {
    float: left;
    position: relative;
    display: inline-block;
    width: 50%;
}

答案 2 :(得分:0)

这个解决方案对我有用,希望能帮助其他人寻求相同的解决方案。

.controlgroup-textinput{
    padding-top:.22em;
    padding-bottom:.22em;
}
<fieldset data-role="controlgroup" data-type="horizontal" data-mini="false">
    <a href="#" data-role="button">Yes</a>
    <input type="text"  value="0" min="0" max="20" size="2" data-wrapper-class="controlgroup-textinput ui-btn" />
    <a href="#" data-role="button">Maybe</a>
</fieldset>