设置输入字段的值

Seb*_*bas 416 html javascript forms input

如何<input>在JavaScript中设置表单文本字段的默认值?

Jam*_*mes 781

这是一种方法:

document.getElementById("mytext").value = "My value";
Run Code Online (Sandbox Code Playgroud)

  • 对上述问题的这个和其他答案似乎忽略了**默认**值应该改变.使用`.value = ...`只会改变当前值.重置表单*(例如`<input type ="reset"/>`)*会将值更改回原始值.相比之下,`setAttribute("value",...)`在Firefox和Chrome中正常工作.默认值已更改,但实际值仅在用户尚未修改时才更改.但是,由于浏览器兼容性,不建议使用`setAttribute`.还有其他可能性吗? (5认同)
  • 我会,如果用户点击该字段,是否有办法使该值为NULL? (4认同)
  • 是的,为输入字段分配一个事件处理程序,用于擦除值onclick.示例:elem.onclick = clearField(); //这将指向一个函数,通过将值设置为空来擦除字段,类似于上面的答案. (3认同)
  • 如果您尝试更改 input-tag 本身的值,这似乎不起作用。澄清一下,如果我有一个按钮应该在单击时更改其值,我似乎无法更改它,也无法通过“this.parentNode.getElementByTagName('input').style.display='none ';" 也不通过使用 this.style.display='none'; 另外,我什至尝试使用“.style = display: none;';” 没有成功... (2认同)

Var*_*ada 54

如果您的表单包含输入字段,如

<input type='text' id='id1' />
Run Code Online (Sandbox Code Playgroud)

然后你可以用javascript编写代码,如下所示,将其值设置为

document.getElementById('id1').value='text to be displayed' ; 
Run Code Online (Sandbox Code Playgroud)


小智 49

我使用'setAttribute'函数:

<input type="text" id="example"> // Setup text field 
<script type="text/javascript"> 
  document.getElementById("example").setAttribute('value','My default value');
</script>
Run Code Online (Sandbox Code Playgroud)

  • 应使用点表示法直接访问`value`:https://developer.mozilla.org/en-US/docs/Web/API/Element.setAttribute只使用set/getAttribute来处理原始值.加载DOM后,`.value`表示元素的实际工作值. (16认同)
  • @ChrisBaker如果可以的话,我会+1000的答案。我有一个第三方应用程序,可以扫描输入字段以使应用程序自动化(我的页面呈现在嵌入式即Control中)。这是一种独特的情况,其中输入字段由客户端的应用程序使用。回发后,在我的文档就绪功能中使用.value时,输入字段没有立即重置。当我进行后续的异步回发时,用户将启动,它将重用这些输入值以使他们之前单击的内容自动化,因此我需要页面“忘记它们”。这是我需要的hacky魔法酱。谢谢佩佩和克里斯! (3认同)
  • 我正在使用Yii 2.0并直接设置.value =''将无法在该字段上正确运行表单验证.正确处理使用setAttribute('value','...').谢谢! (2认同)

小智 19

试试这些.

document.getElementById("current").value = 12

// or

var current = document.getElementById("current");
current.value = 12
Run Code Online (Sandbox Code Playgroud)

  • 切勿将非文本值设置为此类字段.如果您回读,您将在某些浏览器中读取字符串(!) (2认同)

php*_*der 17

答案很简单

// Your HTML text field

<input type="text" name="name" id="txt">

//Your javascript

<script type="text/javascript"> 
document.getElementById("txt").value = "My default value";
</script>
Run Code Online (Sandbox Code Playgroud)

或者,如果您想完全避免使用JavaScript:您可以使用HTML定义它

<input type="text" name="name" id="txt" value="My default value">
Run Code Online (Sandbox Code Playgroud)

  • 令人惊讶的是,这里只有一个人建议使用``value''属性... (6认同)

Ras*_*hat 13

<input id="a_name" type="text" />
Run Code Online (Sandbox Code Playgroud)

这是使用的解决方案jQuery

$(document).ready(function(){
  $('#a_name').val('something');
});
Run Code Online (Sandbox Code Playgroud)

或者,使用JavaScript

document.getElementById("a_name").value = "Something";
Run Code Online (Sandbox Code Playgroud)


Dav*_*ssy 12

如果您使用多个表单,则可以使用:

<form name='myForm'>
    <input type='text' name='name' value=''>
</form>

<script type="text/javascript"> 
    document.forms['myForm']['name'].value = "New value";
</script>
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个答案的原因是,您使用了表单的“名称”属性而不是DOM元素ID,为什么在不需要时将ID字段添加到每个表单输入中呢? (2认同)

Run*_*sis 12

2021 答案

document.getElementById()您现在可以document.querySelector()用于不同的情况,而不是使用

来自另一个 StackOverflow 答案的更多信息:

querySelector可以让你找到规则无法用getElementById和表达的元素getElementsByClassName

例子:

document.querySelector('input[name="myInput"]').value = 'Whatever you want!';
Run Code Online (Sandbox Code Playgroud)

或者

let myInput = document.querySelector('input[name="myInput"]');
myInput.value = 'Whatever you want!';
Run Code Online (Sandbox Code Playgroud)

测试:

document.querySelector('input[name="myInput"]').value = 'Whatever you want!';
Run Code Online (Sandbox Code Playgroud)
let myInput = document.querySelector('input[name="myInput"]');
myInput.value = 'Whatever you want!';
Run Code Online (Sandbox Code Playgroud)

  • 您想将其添加到您的答案中还是我应该发布一个新答案:`document.querySelector("#name").value='foo'`与广泛使用的`id`配合使用。 (2认同)

RWo*_*lfe 8

简单的答案不是在Javascript中获取占位符的最简单方法是通过占位符属性

<input type="text" name="text_box_1" placeholder="My Default Value" />
Run Code Online (Sandbox Code Playgroud)

  • @Sifu这可能是一件好事,即使你*知道你有IE客户端(可能除了JavaScript解决方案),因为它也会在清空字段时重新设置值. (2认同)

Aru*_*wat 7

document.getElementById("fieldId").value = "Value";
Run Code Online (Sandbox Code Playgroud)

或者

document.forms['formId']['fieldId'].value = "Value";
Run Code Online (Sandbox Code Playgroud)

或者

document.getElementById("fieldId").setAttribute('value','Value');
Run Code Online (Sandbox Code Playgroud)

  • setAttribute('值','值'); 不会在 Chrome 上的文本框中为我设置可见值。 (4认同)

ult*_*hie 6

这很简单; 一个例子是:

<input type="text" id="example"> // Setup text field 
<script type="text/javascript"> 
var elem = document.getElementById("example"); // Get text field
elem.value = "My default value"; // Change field
</script>
Run Code Online (Sandbox Code Playgroud)