如何启用输入字段并同时设置值

how to enable a input field and set a value at the same time

<input type= "text" disabled id="ip1">
<button onclick=delete()/>
<script>
    function delete(){
  document.getElementById('ip1').value=''.disabled = false;
}
</script>

我想启用输入字段并在同一行中设置一个空白值。可能吗?因为我有 12 个输入字段,它们一次的行为相同。

您的语法无效。例如,您尝试访问字符串值上的 .disabled 属性,并尝试在一行代码上执行两个完全不同的赋值。

你在做两件事。你要的是两行代码:

document.getElementById('ip1').disabled = false;
document.getElementById('ip1').value = '';

或者,引入一个变量只执行一次文档操作:

var element = document.getElementById('ip1');
element.disabled = false;
element.value = '';

你必须分开你的代码

<script>
    function delete(){
        document.getElementById('ip1').disabled = false;
        document.getElementById('ip1').value=''
    }
</script>

你不能在一个语句中做到这一点。因此,如果您想为多个元素执行此操作,则需要为此创建一个效用函数。

function enableAndSetValue(elm, value) {
  elm.disabled = false
  elm.value = value
}

enableAndSetValue(document.getElementById('ip1'), '')

function deleteEl(){
  var el = document.getElementById('ip1');
  el.value = 'val';
  el.removeAttribute('disabled');
}
<input type= "text" disabled id="ip1">
<button onclick='delete()'>Delete</button>

您可以将元素存储在变量中,然后使用 value 为元素设置值,并使用 removeAttribute('disabled').

删除 disabled

并且不要在函数名中使用delete,它是javascript中的保留字。

<script>
    function del() {
        var elem = document.getElementById('ip1');
        elem.disabled = false;
        elem.value = '';
    }
</script>

<input type= "text" disabled id="ip1">
<button onclick="del()">Button</button>

如果您提供完整的需求,可以提供更好的解决方案。

但是看到您当前的程序,我将展示您的更新代码库。

function deleteIt() {
  var element = document.getElementById('ip1');

  element.value = '';
  element.disabled = false;
  element.focus();
}
<input type="text" disabled id="ip1" />
<button onClick="deleteIt()">Delete</button>

如果您还有任何疑问,请随时发表评论。很乐意提供帮助。:)

因此,如果您想要问题的答案,是的,可以用 jQuery 在一行中完成。几乎没有理由在一行中执行此操作,因为单行的执行方式与多行解决方案的执行方式大致相同。在 jQuery 中,它看起来像这样:

$('#ip1').val('').prop('disabled', false);

使用 vanilla javascript,需要多行解决方案:

document.getElementById('ip1').value = '';
document.getElementById('ip1').disabled = false;

如果需要,您还可以将两个单独的函数绑定到 onclick:

<button onclick="doSomething();doSomethingElse();" />

例如:

<button onclick="document.getElementById('ip1').removeAttribute('disabled');document.getElementById('ip1').value='';">Click</button>

如果您想节省 space 或提高效率,您应该 iterate through the elements using a class 或其他。