2012-05-11 30 views
1

我正在使用jQuery微調器將+/-值添加到我在mysql數據庫傳播的表中的輸入字段中。jQuery ui.spinner.js全局微調器

我想在列的頂部+/- +/-到該列的每個輸入以及每個輸入都有自己的按鈕。

我已經嘗試了jQuery的以下內容:

<script type="text/javascript" src="js/ui.spinner.js"></script> 
<script type="text/javascript"> 
    jQuery().ready(function($) { 
     $('.spinner').spinner({ min: 0, max: 100 }); 
     $('#spinnerall').spinner().change(function() {$('.spinner').spinner('option', 'max', parseInt($(this).val()));}); 
     $('#spinnerall').spinner().change(function() {$('.spinner').spinner('option', 'min', parseInt($(this).val()));}); 
    }); 
</script> 

然後這對錶代碼:

<td><input type='text' class='spinner' value='$max' /></td> 
<input type='text' id='spinnerall' /> 

的「spinnerall」實際上並不需要是一個輸入,但我無論如何,無論如何都不能說出來。

與我上面使用的代碼的spinnerall輸入,復位所有的投入等於相同的值及其目前,而不只是加上或減去1

回答

2

如果我能理解quastion答案應該是這樣的:

<script type="text/javascript" src="js/ui.spinner.js"></script> 
<script type="text/javascript"> 
$(function(){ 
    var $sa = $('#spinnerall').spinner().change(function() { 
     var $me = $(this); 
     // we need the offset between the start and current position 
     var offset = parseInt($me.attr('data-init')) - parseInt($me.val()); 
     $ss.each(function(){ 
      // applying the offset to all spinners 
      this.value = parseInt($(this).attr('data-init')) - offset; 
      // allow only positive or zero 
      this.value *= (this.value > 0); 
     }) 
    }); 
    $sa.attr('data-init',$sa.val()); 

    var $ss = $('.spinner').spinner({ min: 0, max: 100 }).change(function(){ 
     var $me = $(this); 
     // replacing the initial value with the current (without the offset) 
     $me.attr('data-init',parseInt($me.val()) - parseInt($sa.attr('data-init')) - parseInt($sa.val())); 
    }).change(); 
}); 
</script> 

我這個標記測試它:

<input type="text" class="spinner" value="1" /><br/> 
<input type="text" class="spinner" value="-5" /><br/> 
<input type="text" class="spinner" value="7" /><br/><br/> 
<input type='text' id='spinnerall' value="0" /> 

下面是一個例子jsfiddle.net

+0

完美!謝謝! –

+0

嗨,我發現一個小問題是,輸入的值應該不低於0.當使用單獨的spinners時,它們會在您達到0時停止,但是當使用#spinnerall輸入時,它將允許下面的輸入將低於0.起初,我認爲只需將{min:0,max:100}添加到jquery的#spinnerall部分,但顯然隻影響#spinnerall輸入的初始值,而這實際上並不相關。有任何想法嗎? –

+0

即使jQuery的警報,如果其中一個值低於0將是合適的... –