我尝试将单选按钮设置为{{ field.replace(regexp, "") }}
,但这似乎不起作用。
我尝试过使用
但他们似乎都没有将checked="checked"
的属性更改为checked
以下是我的代码 js_file.js
checked="checked"
我创建表格的代码
$(document).ready(function(){
$("document").on("click",".class_radio3",function(){
var id_radio=$(this).attr('value');
$(id_radio).prop('checked',true);
console.log(id_radio);
});
});
可能是什么问题?任何见解/解决方案?作为PhP的初学者,任何建议都会有所帮助。谢谢
请注意 它打印出正确的id,所以我不认为它的选择问题
旁注:如果我尝试在
使用e.preventDefault,则会出现另一个问题 <br>
<p class="uk-text-primary uk-text-bold"><u> General Message </u></p>
<table class="uk-table uk-border-rounded uk-grid-width-* uk-panel-box uk-text-justify" border="1">
<!--create top table -->
<tr> <!--tr defines a row --> <!-- define row 1 -->
<th class="uk-width-1-10"> Recipient </th> <!-- th defines a header cell-->
<th class="uk-width-1-3"> Message </th>
<th class="uk-width-1-10"> Action </th>
<th class="uk-width-1-10"> Default message </th>
</tr>
<!-- row 2 : display results onwards and creates dynamically -->
<!-- input fields at the bottom -->
<?php
include "../connect.php";
$get_data2admin = $db->query("SELECT ID,message,user FROM test_table_1 WHERE user='General'");
if( $get_data2admin->num_rows >0 ){ //if selected rows is more than zero
while($row_msg = $get_data2admin->fetch_assoc()){
$row_msg_id=$row_msg['ID']; //$row_msg['ID'] directly using it wont display in id tag attribute
echo "<tr>";
echo "<td>".$row_msg['user']."</td>";
echo "<td>".$row_msg['message']. "</td>";
?>
<td><a href="#" id="<?php echo $row_msg_id; ?>" class="delete_button uk-text-danger">Delete</a></td>
<?php
if($row_msg['user']=='General'){
echo "<td>"."<input class='class_radio3' type='radio' name='name_radio2' value='$row_msg_id' checked=''/>"."</td>";
}
else{
echo "<td>"."-"."</td>";
};
echo "</tr>";
}
}
?>
</table>
单选按钮变得无法点击。为什么会这样?
答案 0 :(得分:0)
我认为这里有几个问题......一个是每组只能检查一个无线电 - 即具有相同&#34;名称&#34;的无线电。让checked=""
与checked="checked"
相同 - 完全没有属性是&#34;未经检查&#34;状态。
div {
width: 50%;
float: left;
}
&#13;
<div>
<h1>Group 1</h1>
<p><input type="radio" name="group1" value="1" checked="checked" />1</p>
<p><input type="radio" name="group1" value="2" checked="checked" />2</p>
<p><input type="radio" name="group1" value="3" checked="checked" />3</p>
<p><input type="radio" name="group1" value="4" checked="checked" />4</p>
<p><input type="radio" name="group1" value="5" checked="checked" />5</p>
</div>
<div>
<h1>Group 2</h1>
<p><input type="radio" name="group2" value="1" checked="checked" />1</p>
<p><input type="radio" name="group2" value="2" />2</p>
<p><input type="radio" name="group2" value="3" />3</p>
<p><input type="radio" name="group2" value="4" />4</p>
<p><input type="radio" name="group2" value="5" />5</p>
</div>
&#13;
其次,在你的代码中,你说(如果我理解PHP正确输出的是什么),点击此输入(radio),设置id与我的值&property属性相同的东西& #34;检查&#34;为真。带有id的东西是a
标签。 a
标记没有此选中的属性。请参阅下文,我将其背景设置为红色(通过课程),而不是。
默认情况下,单击会检查单选按钮,因此您无需重复此默认行为。
我还更新了代码,以便在输入值发生变化时进行响应,而不是单击文档并且目标是输入时。听取比你更广泛的范围更有限的范围,性能要轻一些。您使用的方法过去被称为&#34; live&#34; jQuery中的监听器更适合于JS添加和删除您在页面上监听的元素;在你的情况下,PHP正在渲染它们,所以我们不需要它。
此外,jQuery选择器需要#
来表示id,.
来表示类,如果没有这些选择器,它会假定它是一个标记。请参阅下面我附加#
以选择带有ID的a。
// This is listening for any radio buttons who were clicked, instead of any clicks on the document (it's a little more efficient)
$("input[type=radio]").on("change", function() {
// get the other radio buttons in this group
var $group = $('input[name=' + $(this).attr('name') + ']');
// Go through the group and if the input is checked, add the class to the corresponding element, otherwise, remove it
$group.each(function() {
var id_radio = "#" + $(this).attr('value');
if ($(this).is(":checked")) {
$(id_radio).addClass("radio-is-checked");
} else {
$(id_radio).removeClass("radio-is-checked");
}
});
});
&#13;
.radio-is-checked {
background: red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p class="uk-text-primary uk-text-bold"><u> General Message </u>
</p>
<table class="uk-table uk-border-rounded uk-grid-width-* uk-panel-box uk-text-justify" border="1">
<!--create top table -->
<tr>
<!--tr defines a row -->
<!-- define row 1 -->
<th class="uk-width-1-10">Recipient</th>
<!-- th defines a header cell-->
<th class="uk-width-1-3">Message</th>
<th class="uk-width-1-10">Action</th>
<th class="uk-width-1-10">Default message</th>
</tr>
<!-- row 2 : display results onwards and creates dynamically -->
<!-- input fields at the bottom -->
<tr>
<td>$row_msg['user']</td>
<td>$row_msg['message']</td>
<!-- Since the radio in this row is checked by default, also apply the corresponding class -->
<td><a href="#" id="one" class="delete_button uk-text-danger radio-is-checked">Delete</a>
</td>
<td>
<input class='class_radio3' type='radio' name='name_radio2' value='one' checked />
</td>
</tr>
<tr>
<td>$row_msg['user']</td>
<td>$row_msg['message']</td>
<td><a href="#" id="two" class="delete_button uk-text-danger">Delete</a>
</td>
<td>
<input class='class_radio3' type='radio' name='name_radio2' value='two' />
</td>
</tr>
<tr>
<td>$row_msg['user']</td>
<td>$row_msg['message']</td>
<td><a href="#" id="three" class="delete_button uk-text-danger">Delete</a>
</td>
<td>
<input class='class_radio3' type='radio' name='name_radio2' value='three' />
</td>
</tr>
</table>
&#13;
第三,&#34;默认&#34;要检查单选按钮的行为。通过执行e.preventDefault
您取消默认行为,所以它不会被检查!
答案 1 :(得分:0)
试试这个 HTML
if($row_msg['user']=='General'){
echo "<td>"."<input id='$row_msg_id' class='class_radio3' type='radio' name='name_radio2' value='$row_msg_id' />"."</td>";
}
JS
var id_radio=$(this).attr('id');
$('#' + id_radio).prop('checked',true);
答案 2 :(得分:0)
检查以下内容,
您可以像下面一样使用 attr ,但我建议您使用 prop
var arrayLocation = 5;
function chk(element) {
$(element).attr("checked", "checked");
}