2013-10-08 203 views
0

我有一个jQuery UI滑块。所有使用此代码的伟大工程:选择下一个输入字段(jQuery)

<div class="ui-slide" id="test_div" min="1" max="20" inc="1"></div> 
<input readonly="readonly" name="padding" id="padding" type="text" value="5" /> 

这是我用它来获取文本框的值的JavaScript代码:

JS代码

$('div.ui-slide').each(function(i){ 

    if($(this).attr('min') != undefined && $(this).attr('max') != undefined) { 

     $(this).slider({ 
         min: parseInt($(this).attr('min')), 
         max: parseInt($(this).attr('max')), 
         value: parseInt($(this).next("input").val()), 
         step: parseInt($(this).attr('inc')) , 
         slide: function(event, ui) { 
          $(this).next("input").val(ui.value); 
         } 
        }); 

     $(this).removeAttr('min').removeAttr('max').removeAttr('inc'); 

    } 

}); 

该问题:

我需要将滑块和文本字段放在一个表格内,特别是每个字段中都有自己的“td”。当我这样做时,我不能再使用上面的JS代码检索文本字段的值。

<table><tbody><tr> 
<td><div class="ui-slide" id="test_div" min="1" max="20" inc="1"></div></td> 
<td><input readonly="readonly" name="padding" id="padding" type="text" value="5" /></td> 
</tr></tbody></table> 

Chrome开发工具给了我这个错误。

Uncaught TypeError: Cannot call method 'addClass' of undefined

我想它有这行代码来执行:

value: parseInt($(this).next("input").val()), 

我不能确定,虽然如何让下一个“输入”的价值,一旦它是一个表格单元格内。

回答

1

代替过度使用next()找到适当的输入元件在表行:

parseInt($(this).closest("tr").find('input[name="padding"]').val()), 

jQuery的文档:

+1

感谢您的提示。这解决了它。使用value:parseInt($(this).closest(“tr”)。find('input')。val()), – Jason

相关问题