我有一张表显示了两个参数。我想要做的是在单击按钮时更改每个参数的值。所以每个参数都有自己的按钮,它有自己的特定ID(用jinja2制作)。对于要更改的值,我必须将参数的名称作为函数中的参数,请查看下图:
所以我点击了我的输入框和我的按钮:
<td> <input type=number size=5 id="{{key}}"> </td>
<td> <button onClick="change('{{key}}')" name="{{key}}">change value</button> </td>
困难之处在于,必须通过执行python脚本来进行更改,因此我的函数被描述为:
function change(key){
$.getJSON($SCRIPT_ROOT + '/_change_value', {
a: $('input[name="key"]').val(),
b: $('button[name="key"]').val()}, function(data) { alert("Value was changed to " + data.result);});
}
出于测试目的,我只做了一个python函数,只返回一个,检查一切是否正常,但不幸的是。
@app.route('/_change_value')
def change_value():
a = request.args.get('a', 0, type=int)
b = request.args.get('b', 0, type=int)
return jsonify(result=a)
a总是以0返回...如果有人可以帮我这个,我很高兴 我很确定没有传递值键。非常感谢提前
编辑:我发错了这个问题,id是存在而不是输入的名称,但仍然没有解决我的问题......
答案 0 :(得分:0)
您可以使用解决方案https://jsfiddle.net/1dvjqy11/
$('button').click(function(){
var a = $(this).closest('tr').find('input[type="number"]').val();
var b = $(this).closest('tr').find('td').first().html();
console.log(a, b);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<thead>
<tr>
<th>Parameter</th>
<th>Value</th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<tr>
<td>GPS_Inject_to</td>
<td>127</td>
<td>
<input type="number" size=5 />
</td>
<td>
<button>
Change Value
</button>
</td>
</tr>
<tr>
<td>RPM2_SCALING</td>
<td>1</td>
<td>
<input type="number" size=5 />
</td>
<td>
<button>
Change Value
</button>
</td>
</tr>
</tbody>
</table>
我已使用jQuery closest
获取父tr
并使用jQuery find
方法查找子元素。
希望这会对你有所帮助。