2013-06-20 21 views
3

情況如何鄉親,鴻溝百分比之間的文本輸入

什麼,你會說是分裂之間使用jQuery不同的形式輸入的百分比的最佳方式? 也就是說。

<input type="text" value="" name="inputOne" /> 
<input type="text" value="" name="inputTwo" /> 
<input type="text" value="" name="inputThree" /> 
<input type="text" value="" name="inputFour" /> 

的想法是在每個這些輸入的KEYUP,該值取 - 從100%中減去,然後被劃分並設置爲其他字段的值。

所以,最後,如果輸入25作爲Inputone的值字段的其餘部分應該再像:

<input type="text" value="25" name="inputTwo" /> 
<input type="text" value="25" name="inputThree" /> 
<input type="text" value="25" name="inputFour" /> 

與往常一樣,任何幫助表示讚賞

+0

我迷路的 - 部分 「的值被從100%減去」,你能解釋一下? – tymeJV

+0

對此感到遺憾 - 因此來自活動輸入字段的值(無論您輸入的是哪個百分比值)都會被扣除(可能是更好的方式)100%減去輸入值除以其他字段的總數 – Jay

+0

那麼有什麼問題,你描述了一個算法,爲什麼不寫呢? –

回答

4

你可以試試這個方法..

$('input').on('keyup', function() { 
    var val = this.value, 
     $allInputs = $('input'); 
    if(val > 100) { 
     $allInputs.val(100/$allInputs.length); 
    } 
    else { 
     var length 
     $('input').not(this).val((100-val)/ ($allInputs.length-1) ) ; 
    } 
}); 

Check Fiddle

需要添加一些錯誤檢查,雖然

+0

在fidel上效果很好,現在試試它謝謝 – Jay

+0

很高興幫助:) –

0

這是一個動態的解決方案,基於任何數量的div類工作。

$('.Maths').on('keyup', function() { 
    var base = parseInt($(this).val()); 
    var count = $('.Maths').length; 
    var rest = (100 - base)/(count - 1); 
    $(this).siblings().val(rest.toString()); 
}); 

http://jsfiddle.net/scottbeeson/RMksp/