可以动态地从post变量中读取吗? 即。
function ajax_edit_color(color_id, building)
{
var color_name = $('#color_name_'+color_id).val();
var color_hex_code = $('#color_hex_code_'+color_id).val();
console.log(color_name, color_hex_code);
}
当我查看控制台时,变量是未定义的。这是否有正确的语法?
编辑: HTML是动态的(PHP):
<label for="color_name_<?php $value['id']; ?>">Color name : </label>
<input type="text" name="color_name_<?php $value['id']; ?>" id="color_name_<?php $value['id']; ?>" class="form-control" required="required" value="<?php echo $value['color_name']; ?>" />
<label for="color_hex_code_<?php $value['id']; ?>">Color HEX code : </label>
<input type="text" name="color_hex_code_<?php $value['id']; ?>" id="color_hex_code_<?php $value['id']; ?>" class="form-control" required="required" value="<?php echo $value['color_code']; ?>" />
AND HERE是呈现的HTML:
<label for="color_name_">Color name : </label>
<input type="text" name="color_name_6" id="color_name_" class="form-control" required="required" value="orange" />
<label for="color_hex_code_">Color HEX code : </label>
<input type="text" name="color_hex_code_6" id="color_hex_code_" class="form-control" required="required" value="ff9c00" />
答案 0 :(得分:0)
您的基本方法是正确的,因此我建议您从简化测试开始,例如没有PHP。我验证了一个基本的例子:
<!doctype html>
<html>
<head>
<script type="text/javascript" src="js/libs/jquery-2.1.4.js"></script>
<script>
function test(){
var index=1;
var val=$("#color_name_"+index).val();
console.log( '****' +val);
};
</script>
</head>
<body>
<button onclick="test();return false;">test</button>
<input type="text" id='color_name_1' value='green'>
<input type="text" id='color_name_2' value='blue'>
</body>
这很有效。现在,如果您自己的代码失败,请尝试查找差异,特别是: 1.你的javascript何时运行 - 它可能在&#34; color_name&#34;之前。元素在文档中呈现? 2.您的PHP是否会生成错误的值,可以通过查看文档源来测试
答案 1 :(得分:0)
查看最终的HTML:
<label for="color_name_">Color name : </label>
<input type="text" name="color_name_6" id="color_name_"
class="form-control" required="required" value="orange" />
名称是对的,但是ID错了。修复你的PHP,javascript将开始工作。 ID必须为color_name_6
,而不是color_name_
。
答案 2 :(得分:-1)
编辑您的javascript以匹配以下
function ajax_edit_color(color_id, building)
{
var color_name = $('#'+color_id).val();
var color_hex_code = $('#'+color_id).val();
console.log(color_name, color_hex_code);
}
// color_name_和color_hex_code_都已经成为你的ID的一部分。