我的视图中有一个表单,我使用数据库中的数据填充了一些动态单选按钮。代码看起来像这样 -
<div class="row">
@foreach($status as $s)
<div class="col-md-6">
<label class="custom-control custom-radio">
<input id="status" name="status" value="{{$s->id}}" type="radio" class="custom-control-input">
<span class="custom-control-indicator"></span>
<span id="status-name" class="custom-control-description">
{{$s->specification}}
</span>
</label>
</div>
@endforeach
</div
和HTML -
<div class="col-md-6">
<label class="custom-control custom-radio">
<input id="status" name="status" value="1" type="radio" class="custom-control-input">
<span class="custom-control-indicator"></span>
<span id="status-name" class="custom-control-description">Yes</span>
</label>
</div>
是 是
现在我想通过ajax将它发送给控制器。我试过这个 -
var status = document.getElementsByName('status').value;
if(status) {
$.ajax({
url: '/getpriceajax'+'/'+status,
type: "GET",
dataType: "json",
success:function(data) {
$('#calculated_price').val(data[0]);
document.getElementById("price-show").innerHTML = "Product price is "+ data[0]+"and "+data[1];
$(".phone-value-details").slideDown(700);
return false;
}
});
}else{
}
但它总是发送第一个单选按钮的值,无论它是否被选中。我已经意识到它正在发生,因为两个单选按钮具有相同的名称,默认情况下,jquery是第一个。所以,我想到动态重命名它们。像 -
name="status_{{$s->id}}"
但我不知道如何在Jquery中访问这个动态名称或id。
答案 0 :(得分:1)
您无需更改status
输入的名称。但是您需要更改id属性以使其在整个文档中unique。或者只是在客户端脚本或CSS中不需要它们时才使用它们。
要获取status
的值,请使用以下代码:
var status = $('input[name="status"]:checked').val();
答案 1 :(得分:1)
您可以使用
$('input[name="status"]').each(function () {
if($(this).is(':checked')){
// $.ajax code with $(this).val()
}
});