【问题标题】:Javascript Radio Button Checked needs to be clicked to be active选中的Javascript单选按钮需要单击才能激活
【发布时间】:2019-08-27 05:43:35
【问题描述】:

我有下面的代码在表单中的选择和文本框之间切换,但是尽管选中了选择,我仍然需要实际单击单选按钮,否则它只会发送空白信息。

<input onclick="document.getElementById('codemenu').disabled = false;
document.getElementById('codecustom').disabled = true;" type="radio"
name="codebutton" value=""  checked="checked">

   <select name="exp_code" id="codemenu">
    <option value="MATS">MATS</option>
    <option value="WAGES">WAGES</option>
    <option value="FUEL">FUEL</option>
    <option value="AD">AD</option>
    <option value="TAX">TAX</option>
    <option value="GAS">GAS</option>
    <option value="OH">OH</option>
    </select>
 <p>
<input onclick="document.getElementById('codecustom').disabled = false;
document.getElementById('codemenu').disabled = true;" type="radio"
name="codebutton">

<input type="text" name="exp_code" id="codecustom" placeholder="Custom Code" 
autocomplete="on">

来源于this page

我觉得我需要在标题中添加一些脚本,如下所示,但我不经常使用 javascript。

<head>
      <script>
  window.onload = function() {
    document.getElementByID.exp_form.type[0].checked = true;
  }
</script>

【问题讨论】:

  • it just sends blank information...何时提交表单?我实际上没有看到&lt;form&gt;
  • 这只是表格中间的一部分。
  • 您的无线电输入需要值,然后您应该会看到正在发送的内容。

标签: javascript html forms


【解决方案1】:

您可以为您的复选框分配一个 id,并在加载视图时执行单击。

试试这个:

<input onclick="document.getElementById('codemenu').disabled = false;
document.getElementById('codecustom').disabled = true;" type="radio"
name="codebutton" value=""  checked="checked" id="exp_form">

   <select name="exp_code" id="codemenu">
    <option value="MATS">MATS</option>
    <option value="WAGES">WAGES</option>
    <option value="FUEL">FUEL</option>
    <option value="AD">AD</option>
    <option value="TAX">TAX</option>
    <option value="GAS">GAS</option>
    <option value="OH">OH</option>
    </select>
 <p>
<input onclick="document.getElementById('codecustom').disabled = false;
document.getElementById('codemenu').disabled = true;" type="radio"
name="codebutton">

<input type="text" name="exp_code" id="codecustom" placeholder="Custom Code" 
autocomplete="on">

<script>
  window.onload = function() {
    var el = document.getElementById('exp_form');
    if (el.onclick) {
       el.onclick();
    } else if (el.click) {
       el.click();
    }
  }
</script>

【讨论】:

  • 行得通。现在,我的表单的第二部分以相同的方式运行,但是实现另一个脚本,其中 id、变量和函数名称已更改为适合,但仍然存在冲突。
  • 抱歉,我已经搞定了。只是为了澄清我在同一个函数中运行了两个 if 语句。鉴于我对 Javascript 不太了解,您是否介意描述您的脚本中发生的事情,以便我将来学习。我知道您调用了一个函数并为元素 ID 定义了一个变量,这是 if 语句让我有些困惑,因为我习惯于 php if 语句。
  • if 语句仅用于检查如果存在则存在哪个函数。 if onclick 函数存在 if 将在 else where 检查click 函数时执行
【解决方案2】:

试试这个:

<input onclick="document.getElementById('codemenu').disabled = false;
document.getElementById('codecustom').disabled = true;" type="radio"
name="codebutton" value=""  checked="checked">

<select name="exp_code" id="codemenu">
<option value="MATS">MATS</option>
<option value="WAGES">WAGES</option>
<option value="FUEL">FUEL</option>
<option value="AD">AD</option>
<option value="TAX">TAX</option>
<option value="GAS">GAS</option>
<option value="OH">OH</option>
</select>
<p>
<input onclick="document.getElementById('codecustom').disabled = false;
document.getElementById('codemenu').disabled = true;" type="radio"
name="codebutton">

<input type="text" name="exp_code" id="codecustom" placeholder="Custom Code" 
disabled="disabled"
autocomplete="on">

【讨论】:

    【解决方案3】:

    尝试选择 HTML 中的第一个选项: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/select#Basic_select

    <option value="MATS" selected>MATS</option>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-04
      • 2022-07-01
      • 2019-08-30
      • 1970-01-01
      • 1970-01-01
      • 2014-08-08
      • 2017-09-23
      相关资源
      最近更新 更多