如何启用输入字段并同时设置值
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 或其他。
<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 或其他。