【发布时间】:2009-08-24 20:46:08
【问题描述】:
我之前收到过一个问题的帮助,获得了一个多选项选择表单来创建新输入,具体取决于选择了多少。下面的代码最终为我工作(归功于Peter Bailey)
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="en">
<head>
<title>test</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<script type="text/javascript">
$(function()
{
$('#test')
.after( '<div id="option-inputs"></div>' )
.find( 'option' ).each( function()
{
var $option = $(this);
$option
.data( '$input', $( '<span>' + $option.text() + ': </span><input><br>').appendTo( '#option-inputs' ).hide() )
.bind( 'toggle-input', function()
{
var $input = $option.data( '$input' );
if ( $option[0].selected )
{
$input.show();
} else {
$input.hide();
}
})
.bind( 'click', function()
{
$(this).siblings().andSelf().trigger( 'toggle-input' );
})
.trigger( 'toggle-input' )
;
})
;
});
</script>
</head>
<body>
<select id="test" multiple="multiple">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</body>
</html>
我不知道 jQuery,所以我需要帮助进行最后一个调整。我需要能够限制选择的选项创建新框。因此,如果选择了值 -1 或 0 的选项,则不会创建新的文本框。别的什么都行。
还有什么方法可以让其他选择表单触发此更新?在常规 javascript 中,您将使用 onChange="" 和一个函数来更新它。这样做的原因是,选择表是根据前一个选择表的输入动态填充的。如果您返回并更改之前的选择表,它不会更新 jQuery,之前的输入仍然存在。
感谢您的帮助!
【问题讨论】:
标签: jquery forms triggers html-select