"Disabled" 输入未禁用
"Disabled" input not disabled
我正在制作一个网页,它使用 HTML(CSS 稍后出现,当内容和脚本启动并运行时)、JavaScript 和 AJAX 来管理 TShock 服务器(对于游戏 Terraria),使用其 REST API.
我希望页面支持大多数(如果不是全部的话)REST API 端点(列表可用 here)。
我目前在 /v2/users/update 端点部分遇到问题。我想创建一个表单(不使用 <form>
标签,我不希望椅子到键盘的界面被 'enter' 键搞砸)。
端点的描述说可选字段是 password
和 group
。不提供至少一个会破坏更新用户的意义。
为了确保提供一个或两个,我想使用单选按钮而不是复选框(同样是因为椅子到键盘的界面)。
每个单选按钮都应该启用正确的输入字段,除非它们没有。 Chrome 的控制台不报告任何内容,Firefox 和 IE 也是如此。
有人对此有替代解决方案吗?当然,我可能犯了一个错误。
我宁愿避免根据用户的选择更改 div
的 innerHTML
。
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">
我正在制作一个网页,它使用 HTML(CSS 稍后出现,当内容和脚本启动并运行时)、JavaScript 和 AJAX 来管理 TShock 服务器(对于游戏 Terraria),使用其 REST API.
我希望页面支持大多数(如果不是全部的话)REST API 端点(列表可用 here)。
我目前在 /v2/users/update 端点部分遇到问题。我想创建一个表单(不使用 <form>
标签,我不希望椅子到键盘的界面被 'enter' 键搞砸)。
端点的描述说可选字段是 password
和 group
。不提供至少一个会破坏更新用户的意义。
为了确保提供一个或两个,我想使用单选按钮而不是复选框(同样是因为椅子到键盘的界面)。
每个单选按钮都应该启用正确的输入字段,除非它们没有。 Chrome 的控制台不报告任何内容,Firefox 和 IE 也是如此。
有人对此有替代解决方案吗?当然,我可能犯了一个错误。
我宁愿避免根据用户的选择更改 div
的 innerHTML
。
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">