单选按钮默认选中,但在提交时未选中

Radio button checked by default but un-checked on submit

本文关键字:提交 默认 单选按钮      更新时间:2023-09-26

我有一组单选按钮,如下所示。我打算有一个情况,在页面的初始加载默认单选按钮检查是塑料。下面的代码只保留我选择的单选按钮。

<div id="material">
<input type="radio"  name="materials" value="glass" style="vertical-align: middle"
  onchange="this.form.submit()"
  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'glass') {echo "checked";}} ?>
  />
<label for="material">Glass</label> <br/>
<input type="radio"  name="materials"  style="vertical-align: middle" value="plastic"
  onchange="this.form.submit()"
  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'plastic') {echo "checked";}} ?>
/>
<label for="material" >Plastic (Organic)</label>
</div>

onchange="this.form.submit()"从单选按钮中移除,并将其添加到页面标题的脚本标签之间:

<script>
window.onload = function() {
    // when the form is submitted
    document.forms[0].onsubmit = function() {
        // get all radio buttons with name = materials
        var radios = document.getElementsByName('materials');
        // for each radio button
        for(i=0; i<radios.length; i++) {
            // uncheck radio buttons
            radios[i].checked = false;
        }
    };
};
</script>

尝试下面给出的代码,它具有所需的更改

<div id="material">
    <input type="radio"  name="materials" value="glass" style="vertical-align: middle"  onchange="this.form.submit()" <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'glass') {echo "checked";}} ?>/>
     <label for="material">Glass</label> <br/>
    <input type="radio" checked="checked"   name="materials"  style="vertical-align: middle"  value="plastic"  onchange="this.form.submit()"  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'plastic') {echo "checked";}} ?>/>
    <label for="material" >Plastic (Organic)</label>
    </div>

更新
<form method="post" >
 <div id="material">
 <?php if(isset($_POST['materials'])) {
    if($_POST['materials'] == 'glass'){
    ?>
<input type="radio" checked="checked" name="materials" value="glass" style="vertical-align: middle"  onchange="this.form.submit()" <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'glass') {echo "checked";}} ?>/>
 <label for="material">Glass</label> <br/>
 <input type="radio"   name="materials"  style="vertical-align: middle"  value="plastic"  onchange="this.form.submit()"  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'plastic') {echo "checked";}} ?>/>
<label for="material" >Plastic (Organic)</label>
 <?php } 
 else { ?>
  <input type="radio"  name="materials" value="glass" style="vertical-align: middle"  onchange="this.form.submit()" <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'glass') {echo "checked";}} ?>/>
  <label for="material">Glass</label> <br/>
 <input type="radio" checked="checked"  name="materials"  style="vertical-align: middle"  value="plastic"  onchange="this.form.submit()"  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'plastic') {echo "checked";}} ?>/>
 <label for="material" >Plastic (Organic)</label>
 <?php } 
 } else { ?>
 <input type="radio"  name="materials" value="glass" style="vertical-align: middle"  onchange="this.form.submit()" <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'glass') {echo "checked";}} ?>/>
 <label for="material">Glass</label> <br/>
<input type="radio" checked="checked"  name="materials"  style="vertical-align: middle"  value="plastic"  onchange="this.form.submit()"  <?php if(isset($_POST['materials'])){ if($_POST['materials'] == 'plastic') {echo "checked";}} ?>/>
<label for="material" >Plastic (Organic)</label>
<?php } ?>
</div>
<input type="submit" name="submit">
</form>

尝试将"checked"改为"checked ="checked"'