【发布时间】:2015-03-24 17:13:44
【问题描述】:
我正在开发发票模块。我有一个使用 ajax 生成新行的按钮,并且所有字段都具有相同的名称,就像第一个字段的名称是 field1 一样,对于所有新生成的行,它将保持为 field1。而且我还有一个选择框,其产品名称显示数据库(mysql)中的选项,因此当用户从选择菜单中选择一个选项(产品)时,我想在输入字段上打印它的价格。我有这个 ajax 脚本。第一行工作正常。但是当我生成一个新行并从选择框中选择一个选项时,它不适用于该行。当我从第一行更改选择选项时,它会更改所有输入字段的值。我不知道ajax,所以不知道如何解决这个问题。请查看并告诉我如何解决此问题。
<html>
<head>
<script type="text/javascript">
$(document).ready(function(){
$(".pname").change(function(){
var id=$(this).val();
var dataString = 'id='+ id;
$.ajax
({
type: "POST",
url: "get_price.php",
data: dataString,
cache: false,
success: function(html)
{
$(".price").val(html);
}
});
});
});
</script>
</head>
<body>
<select name='pro_name[]'>
<option value='1'>Pro 1</option>
<option value='2'>Pro 2</option>
<option value='3'>Pro 3</option>
</select>
<input type='text' name='price[]'>
<br />
<select name='pro_name[]'>
<option value='1'>Pro 1</option>
<option value='2'>Pro 2</option>
<option value='3'>Pro 3</option>
</select>
<input type='text' name='price[]'>
<br />
<select name='pro_name[]'>
<option value='1'>Pro 1</option>
<option value='2'>Pro 2</option>
<option value='3'>Pro 3</option>
</select>
<input type='text' name='price[]'>
<br />
<select name='pro_name[]'>
<option value='1'>Pro 1</option>
<option value='2'>Pro 2</option>
<option value='3'>Pro 3</option>
</select>
<input type='text' name='price[]'>
<br />
</body>
</html>
附:这里我自己编写所有字段,但我使用的是自动生成脚本。
【问题讨论】:
-
你的 pname 类在哪里?而且你还写了 var id=$(this).val();它在哪里?
-
试试这个
$(document).on('change', '.pname', function(){而不是$(".pname").change(function(){ -
对不起,这不是同样的问题。更改所有输入字段值..