[英]jquery issue in getting value by name attribute
<%= attendance_form_id %>
in jquery contains dynamic unique id of table generated in html view. jquery 中的
<%= attendance_form_id %>
包含在 html 视图中生成的表的动态唯一 id。
i am trying to get radio button value by name attribute project_director[status]
.that has same attribute name inside every unique id.我正在尝试通过名称属性
project_director[status]
获取单选按钮值。每个唯一 ID 中都有相同的属性名称。 i am using alert to get value.我正在使用警报来获取价值。
currently my code correctly alerts form submitted value on first page load submission.目前我的代码在第一页加载提交时正确地提醒表单提交的值。 but second submission onward it alerts first submission alert value.
但是第二次提交之后它会提醒第一次提交警报值。 once i reload page it works correct first time.
一旦我重新加载页面,它第一次就可以正常工作。
how can i make alert work correct all time.我怎样才能使警报始终正确工作。
js js
<script>
$(document).on('turbolinks:load', function() {
$('#<%= attendance_form_id %>').on('ajax:success', function(event){
const [data, status, xhr] = event.detail
//alert(status)
value = $('input[name="project_director[status]"]:checked').val();
alert(value)
$('#<%= attendance_form_id %>').hide()
}).on('ajax:error',function(event){
alert("Something went wrong, please reload page")
});
});
</script>
html code html代码
<table id="attendance_form_29">
<tbody>
<tr>
<td>
<ul>
<div>
<div class="wrapper-class">
<input type="radio" value="true" name="project_director[status]" id="project_director_status_true">
<label for="project_director_approve">Approve</label>
<br>
<input type="radio" value="false" name="project_director[status]" id="project_director_status_false">
<label for="project_director_reject">Reject</label>
</div>
</div>
</ul>
</td>
<td>
<input value="4" type="hidden" name="project_director[user_id]" id="project_director_user_id">
<input type="submit" name="commit" value="Submit" class="button primary small" data-disable-with="Submit">
</td>
</tr>
</tbody>
</table>
If I understand correctly, you need to get value of input[name="project_director[status]"]
inside the form that has <%= attendance_form_id %>
id.如果我理解正确,您需要在具有
<%= attendance_form_id %>
id 的表单中获取input[name="project_director[status]"]
的值。 In this case $('input[name="project_director[status]"]:checked').val()
will not work as expected because you have multiple input with this name as mentioned ( has same attribute name inside every unique id ).在这种情况下,
$('input[name="project_director[status]"]:checked').val()
将无法按预期工作,因为您有多个具有此名称的输入(每个唯一 id 内都有相同的属性名称) . To make it work, you can use .find() :要使其工作,您可以使用.find() :
$(document).on('turbolinks:load', function() {
$('#<%= attendance_form_id %>').on('ajax:success', function(event){
const [data, status, xhr] = event.detail;
//change here
value = $('#<%= attendance_form_id %>').find('input[name="project_director[status]"]:checked').val();
alert(value)
$('#<%= attendance_form_id %>').hide()
}).on('ajax:error',function(event){
alert("Something went wrong, please reload page")
});
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.