2015-03-31 90 views
-3

我希望用戶輸入「px」,「em」或「%」等單位的數字,然後使用箭頭增加/減少數值。HTML中的可編輯單位<input type =「number」>

與此類似jQuery UI Spinner demo,但可以在輸入欄內輸入任何單位。

UPD: 我想出了這個solution這對我很有用。

+2

你試圖從你身邊什麼? – 2015-03-31 12:24:17

+0

我試圖修改jQuery UI示例沒有運氣。搜索類似的插件也沒有幫助。來自[這個問題]的答案(http://stackoverflow.com/questions/28605416/display-of-units-in-html-stepper-input-type-number#answer-29271539)接近我所尋找的。我試圖修改它以適合我的需求。 – fornyhucker 2015-03-31 12:57:10

回答

0

感謝N K對他的回答here。這裏是支持單元編輯的修改片段。

$("#value").on("change", function(){ 
 
    var units = $("#units").val(); 
 
    console.log(units); 
 
    $(".fake input").val(this.value + units); 
 
}); 
 
$(".fake input").on("change", function(){ 
 
    var value = this.value.match(/(\d*\.?\d*)(.*)/); 
 
    $("#value").val(value[1]); 
 
    $("#units").val(value[2]); 
 
});
.fake { 
 
    position: relative; 
 
    top: -20px; 
 
    left: 2px; 
 
    float: left; 
 
} 
 
.fake input { 
 
    width: 145px; 
 
    border: none; 
 
    outline: none; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="original"> 
 
    <input id="value" type="number" step="1"/> 
 
    <input id="units" type="hidden" name="units" value="px"/> 
 
</div> 
 
<div class="fake"> 
 
    <input type="text" value="0px"/> 
 
</div>

0
[Fiddle][solution]  
[solution]: http://jsfiddle.net/apurvaojas/yvLj1400/1/ 

$("input[type='number']").change(function(){ 
 
    var ip = $(this); 
 
    switch($('select').val()) 
 
    { 
 
\t \t \t case 'per': $('div.block').width(ip.val()+"%"); 
 
\t \t \t break; 
 

 
\t \t \t case 'em': $('div.block').width(ip.val()+"em"); 
 
\t \t \t break; 
 
      
 
      case 'px': $('div.block').width(ip.val()+"px"); 
 
\t \t \t break; 
 
\t \t \t 
 
\t \t \t default: return; 
 
\t \t } 
 

 
});
div.block{ 
 
    background: red; 
 
    width: 100px; 
 
    height: 100px; 
 
    margin-top:10px; 
 
} 
 
.container{ 
 
    width: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
 
<input type="number" name="val"> 
 
    <select> 
 
    <option value="per">%</option> 
 
    <option value="em">em</option> 
 
    <option value="px">px</option> 
 
    
 
</select> 
 
    <div class="container"> 
 
    <div class="block"></div>  
 
    </div>

我想,這可能會解決你的問題。

+0

感謝您的回答,但這不是我正在尋找的。它應該支持任何單位,而不僅僅是從列表中,所以用戶可以在輸入字段內編輯它。 – fornyhucker 2015-03-31 13:44:47

相關問題