我的代码有问题,我无法弄清楚如何解决这个问题。
工作原理:
为什么会这样?如果每次重复此操作,您将再看到一个警报。
<meta charset="utf-8">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<select id="type">
<option value="1">Test 1</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
<form id="order_form">
<div data-id="1" class="hide">
<p>Test 1</p>
<input type="text" name="test1">
</div>
<div data-id="2" class="hide">
<p>Test 2</p>
<input type="text" name="test2">
</div>
<div data-id="3" class="hide">
<p>Test 3</p>
<input type="text" name="test3">
</div>
</form>
<script type="text/javascript">
$('#type').change(function () {
$('.hide').hide();
$('[data-id=' + $(this).val() + ']').show();
$('#order_form')[0].reset();
$product = ~~$('#type').val();
$('input[name="test'+$product+'"]').change(function(e) {
$test = $('input[name="test'+$product+'"]').val();
alert($test);
})
}).trigger('change');
</script>
答案 0 :(得分:0)
change
上调用input[type=text]
,而不是在特定输入上调用$(document).ready(function() {
$('#type').on('change', function () {
$('.hide').hide();
$('[data-id=' + $(this).val() + ']').show();
$('#order_form')[0].reset();
});
$('input[type=text]').change(function(e) {
$product = $('#type').val();
$test = $('input[name="test'+$product+'"]').val();
alert($test);
});
$('#type').trigger('change');
});
,因为一次只能显示一个。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="type">
<option value="1">Test 1</option>
<option value="2">Test 2</option>
<option value="3">Test 3</option>
</select>
<form id="order_form">
<div data-id="1" class="hide">
<p>Test 1</p>
<input type="text" name="test1"/>
</div>
<div data-id="2" class="hide">
<p>Test 2</p>
<input type="text" name="test2"/>
</div>
<div data-id="3" class="hide">
<p>Test 3</p>
<input type="text" name="test3"/>
</div>
</form>
{{1}}