javascript - 是否可以通过使用 javascript 来使用 <td> id 更改 <td> 内输入元素的输入类型?

标签 javascript html

我有一个密码类型的输入元素,位于 <td> 内id type="pass" 。我想更改 <td> 内的输入元素的类型至type="text"使用 javascript,我将如何做到这一点?我还用 onclick() 做了一个复选框事件来切换显示密码。

抱歉,我只是一个初学者,几天前才开始学习 javascript。

下面是我的示例代码:

        <tr>
           <td><input type="text" name="username"></td>
           <td id="pass"><input type="password" name="password"></td>
           <td><input type="checkbox" onclick="showPass()"></td> 
        </tr>

我所知道的是使用 javascript 直接更改输入类型,前提是输入元素具有 id。

这是我的 JavaScript:

        function showPass(){
           var x = document.getElementById("pass");
              if(x.type === "password"){
                  x.type = "text";
              }else{
                  x.type = "password";
              }

最佳答案

将 ID 放在输入上,而不是输入所在的单元格上。此外,您可以将复选框的值传递到切换密码输入类型的函数中,以避免复选框与输入不同步。

function showPass(show) {
  var input = document.getElementById("pass");
  var label = document.getElementById("toggle-label");

  if (show) {
    input.type = "text";
    label.textContent = "Hide password";
  }
  else {
    input.type = "password";
    label.textContent = "Show password";
  }
}
<input id="pass" type="password" name="password" value="your-password" /><br/>
<label id="toggle-label" for="toggle-password">Show password</label>
<input id="toggle-password" type="checkbox" onclick="showPass(this.checked)" />

但是,我建议取消内联 onclick 并使用 Javascript 完成所有操作,如下所示...

var input = document.getElementById("pass");
var label = document.getElementById("toggle-label");
var checkbox = document.getElementById("toggle-password");

checkbox.addEventListener("change", function() {
  if (checkbox.checked) {
    input.type = "text";
    label.textContent = "Hide password";
  }
  else {
    input.type = "password";
    label.textContent = "Show password";
  }
});
<input id="pass" type="password" name="password" value="your-password" /><br/>
<label id="toggle-label" for="toggle-password">Show password</label>
<input id="toggle-password" type="checkbox"/>

关于javascript - 是否可以通过使用 javascript 来使用 <td> id 更改 <td> 内输入元素的输入类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56115446/

相关文章:

javascript - 使用 PhantomJS 在 Angular.js 应用程序中填写表单

javascript - 触摸pdf : same file is opened with different URLs

javascript - 嵌套 AngularJS promise 在单元测试中不起作用

html - CSS 文本从错误的地方开始

html - 为什么我在 Angular react 形式的 *ngIf 中出现错误

javascript - ASP.NET MVC - 如何在 javascript 中执行条件 C# 代码

javascript - 内联 Javascript NOT Rails Heroku 不工作

javascript - 如何使用element查找第n个父元素

html - 如何向上移动 CSS 中的元素,以便下面的元素跟随?

html - 没有容器div将div分成左右