2013-03-25 104 views
2

干杯!我在前端并不擅长,所以,设计师窥视,你有什么想法如何实现类似这样的输入,我应该从什么开始?自定义数字输入

input

+0

寻找一些jquery插件还有很多jquery插件比这个设计更有吸引力 – 2013-03-25 12:55:50

回答

3

这里是非常基本的例子它是如何做到的。当然你需要改变样式并根据需要调整元素。但是这个想法应该是可以理解的。

HTML:

<div class="spin"><span>&ndash;</span><input value="0" /><span>+</span></div> 

CSS:

.spin { 
    display: inline-block; 
} 
.spin span { 
    display: inline-block; 
    width: 20px; 
    height: 22px; 
    text-align: center; 
    padding-top: 2px; 
    background: #ff0; 
    border: 1px solid #aaa; 
    border-radius: 0 4px 4px 0; 
    cursor: pointer; 
} 
.spin span:first-child { 
    border-radius: 4px 0 0 4px; 
} 
.spin input { 
    width: 40px; 
    height: 20px; 
    text-align: center; 
    font-weight: bold; 
} 

的JavaScript:

var spins = document.getElementsByClassName("spin"); 
for (var i = 0, len = spins.length; i < len; i++) { 
    var spin = spins[i], 
     span = spin.getElementsByTagName("span"), 
     input = spin.getElementsByTagName("input")[0]; 

    input.onchange = function() { input.value = +input.value || 0; }; 
    span[0].onclick = function() { input.value = Math.max(0, input.value - 1); }; 
    span[1].onclick = function() { input.value -= -1; }; 
} 

DEMO:http://jsfiddle.net/fPQvK/

+0

首先 - 感谢您的回复!其次 - 如果我不需要单一输入,但是这样的输入有多少呢? – xamenrax 2013-03-26 11:07:47

1

尝试HTML5 input type number

<input type="number"/> 

没啥Firefox支持:(

编辑:或创建一个作为的Jakub建议:

<input type="text" id="numberInput" value="1"/> 
<input type="button" id="btnIncrement" value="increment" onclick="increment();" /> 
<input type="button" id="btnDecrement" value="decrement" onclick="decrement();" /> 

function increment(){ 
    var input = document.getElementById('numberInput'); 
    input.value = parseInt(input.value) + 1; 
} 

function decrement(){ 
    var input = document.getElementById('numberInput'); 
    input.value = parseInt(input.value) - 1; 
} 

fiddle

+0

谢谢你的回答,但它非常非常非常基本,我更感兴趣的是如何管理这些+/-按钮,如何定制它们? – xamenrax 2013-03-25 12:54:28

+0

@Nikita看到这个jquery插件:http://1stwebmagazine.com/stepper-jquery-number-input-plugin – karaxuna 2013-03-25 12:58:47

+1

这种输入将非常困难,甚至_impossible_,风格。我建议使用经典的'type =“text”',在** JS **中添加两个''并将'onClick'事件绑定到(de/in)中。 – 2013-03-25 12:59:41