"Disabled" 输入未禁用

"Disabled" input not disabled

我正在制作一个网页,它使用 HTML(CSS 稍后出现,当内容和脚本启动并运行时)、JavaScript 和 AJAX 来管理 TShock 服务器(对于游戏 Terraria),使用其 REST API.

我希望页面支持大多数(如果不是全部的话)REST API 端点(列表可用 here)。

我目前在 /v2/users/update 端点部分遇到问题。我想创建一个表单(不使用 <form> 标签,我不希望椅子到键盘的界面被 'enter' 键搞砸)。

端点的描述说可选字段是 passwordgroup。不提供至少一个会破坏更新用户的意义。

为了确保提供一个或两个,我想使用单选按钮而不是复选框(同样是因为椅子到键盘的界面)。

每个单选按钮都应该启用正确的输入字段,除非它们没有。 Chrome 的控制台不报告任何内容,Firefox 和 IE 也是如此。

有人对此有替代解决方案吗?当然,我可能犯了一个错误。

我宁愿避免根据用户的选择更改 divinnerHTML


JS代码(使用jQuery的代码示例):

function PassInputOnly(){
    $.("#PwdField").prop("disabled", false); // Using document.getElementById("FieldId").disabled
    $.("#GrpField").prop("disabled", true); // doesn't work either.
}

function GrpInputOnly(){
    $.("#PwdField").prop("disabled", true);
    $.("#GrpField").prop("disabled", false);
}

function BothInputs(){
    $.("#PwdField").prop("disabled", false);
    $.("#GrpField").prop("disabled", false);
}

HTML代码:

<input type="text" id="UpdUser" placeholder="Username">
<p>What will get updated ?</p>
<input type="radio" name="WhatGetsUpdated" onclick="BothInputs()" checked>Password and Group<br>
<input type="radio" name="WhatGetsUpdated" onclick="PassInputOnly()">Password<br>
<input type="radio" name="WhatGetsUpdated" onclick="GrpInputOnly()">Group<br>
<input type="text" id="PwdField" placeholder="New password">
<input type="text" id="GrpField" placeholder="New group">

注意:它类似于 this question,但我想使用 on* 事件,而不是值。

去掉“.”在 $ 即

之后
$.("#PwdField") ==> $("#PwdField")

看看这个:

function PassInputOnly(){
 
    $("#PwdField").prop("disabled", false); // Using document.getElementById("FieldId").disabled
    $("#GrpField").prop("disabled", true); // doesn't work either.
}

function GrpInputOnly(){
    $("#PwdField").prop("disabled", true);
    $("#GrpField").prop("disabled", false);
}

function BothInputs(){
    $("#PwdField").prop("disabled", false);
    $("#GrpField").prop("disabled", false);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="text" id="UpdUser" placeholder="Username">
<p>What will get updated ?</p>
<input type="radio" name="WhatGetsUpdated" onclick="BothInputs()" checked>Password and Group<br>
<input type="radio" name="WhatGetsUpdated" onclick="javascript:PassInputOnly()">Password<br>
<input type="radio" name="WhatGetsUpdated" onclick="GrpInputOnly()">Group<br>
<input type="text" id="PwdField" placeholder="New password">
<input type="text" id="GrpField" placeholder="New group">