ChatGPT解决这个技术问题 Extra ChatGPT

设置输入字段的值

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


C
Community

这是一种方法:

document.getElementById("nameofid").value = "My value";

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

我使用'setAttribute'函数:

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

value 应该使用点符号直接访问:developer.mozilla.org/en-US/docs/Web/API/Element.setAttribute 您只使用 set/getAttribute 来处理原始值。 DOM 加载完成后,.value 代表元素的实际工作值。
@ChrisBaker如果可以的话,我会+1000这个答案。我有一个第 3 方应用程序,它扫描输入字段以自动化应用程序(我的页面呈现在嵌入式即控件中)。这是一个独特的场景,其中输入字段由客户端的应用程序使用。在我的文档就绪函数中使用 .value 回发后,输入字段没有立即重置。当我有一个用户将启动的后续异步回发时,它会重用这些输入值来自动化他们之前点击的东西,我需要页面来“忘记它们”。这是我需要的 hacky 魔法酱。谢谢佩佩和克里斯!
我正在使用 Yii 2.0 并直接设置 .value = '' 不会在该字段上正确运行表单验证。正确处理使用 setAttribute('value','...') 。谢谢!
我有一个用 setAttribute 解决的奇怪问题。我的问题是通过函数调用更改输入的值,也更改最后更改的输入。
我只能使用这个答案将值设置为弹出模式输入(文本)。 .value 对我不起作用。谢谢
V
Varada

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

<input type='text' id='id1' />

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

document.getElementById('id1').value='text to be displayed' ; 

帮助!我这样做了,但是一旦我单击另一个字段或单击页面上的任何按钮,值总是会变回原始值。这是我做的网站(类“_56AraZ”)shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F谁能告诉我如何真正设置值以自动登录该网站。
D
David Caissy

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

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

<script type="text/javascript"> 
    document.forms['myForm']['name'].value = "New value";
</script>

我喜欢这个答案的原因是您使用表单的“名称”属性而不是 DOM 元素 ID,为什么在不需要时向每个表单输入添加 ID 字段?
@tremor 完全同意,这是我使用“name”而不是“id”找到的第一个答案。
什么更有效,通过输入 id 或表单和输入名称检索值?似乎页面上的表单不多,但元素很多。
使用您的代码通过表单元素设置输入值,它不会在网站上的 html 中更新。当我直接处理输入时,它会更新。
谢谢。 document.getElementByName("timer1") 对我不起作用,但 document.forms['loginform']['timer1'] 起作用了。
R
Runsis

2021答案

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

more info from another StackOverflow answer:

querySelector 可让您查找具有无法用 getElementById 和 getElementsByClassName 表达的规则的元素

例子:

document.querySelector('input[name="myInput"]').value = 'Whatever you want!';

或者

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

测试:

document.querySelector('input[name="myInput"]').value = '随便你!';


您想将它添加到您的答案中还是我应该发布一个新答案:document.querySelector("#name").value='foo' 与广泛使用的 id 一起使用。
@Timo 好吧,我的回答回答了这个问题,querySelector 可以有多个规则。你的评论很有帮助!我会支持它,但我不会发布新答案,因为它是相同的
l
luis_laurent

试试这些。

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

// or

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

切勿为此类字段设置非文本值。如果您回读,您将在某些浏览器中读取字符串 (!) )
帮助!我这样做了,但是一旦我单击另一个字段或单击页面上的任何按钮,值总是会变回原始值。这是我做的网站(类“_56AraZ”)shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F谁能告诉我如何真正设置值以自动登录该网站。
A
Alexander Johansen

答案很简单

// 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>

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

<input type="text" name="name" id="txt" value="My default value">

令人惊讶的是,这里只有一个人建议使用 value 属性...
@AlgyTaylor 感谢您的努力,并感谢您的精彩评论
R
Rashed Rahat
<input id="a_name" type="text" />

以下是使用 jQuery 的解决方案:

$(document).ready(function(){
  $('#a_name').val('something');
});

或者,使用 JavaScript

document.getElementById("a_name").value = "Something";

快乐编码:)


R
RWolfe

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

<input type="text" name="text_box_1" placeholder="My Default Value" />

问题在于它根本不适用于 Internet Explorer。如果你知道你不会有 IE 客户端,那么是的,这是最好的答案。
@Sifu 即使您确实知道您有 IE 客户端(可能除了 JavaScript 解决方案),这实际上也可能是一件好事,因为它也会在字段被清空时重新设置值。
@Sifu IE 什么时候不支持 placeholder 属性,用 IE 去 www.1c3br3ak3r-multimedia.ca 看看搜索栏,它使用了 placeholder 属性
@Jdoonan 实际上不久前 - IE10 及更高版本支持 caniuse.com/#feat=input-placeholder 占位符
A
Arun Karnawat
document.getElementById("fieldId").value = "Value";

或者

document.forms['formId']['fieldId'].value = "Value";

或者

document.getElementById("fieldId").setAttribute('value','Value');

setAttribute('值','值');没有在 Chrome 上为我设置文本框中的可见值。
帮助!我做了所有这些,但是一旦我单击另一个字段或单击页面上的任何按钮,值总是会变回原始值。我用类“_56AraZ”做的网站shopee.vn/buyer/login?next=https%3A%2F%2Fshopee.vn%2F
u
ultimatetechie

这很简单;一个例子是:

<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>

M
MD SHAYON

这对我有用

//HTML
<div id="mytext">Some Text Value</div>

// JavaScript
document.getElementById("mytext").value = "My value";

C
Cake Princess

如果由于某种原因该字段只有一个名称属性而没有其他属性,您可以尝试以下操作:

document.getElementsByName("INPUTNAME")[0].value = "TEXT HERE";

M
Marcello B.
<form>
  <input type="number"  id="inputid"  value="2000" />
</form>


<script>
var form_value = document.getElementById("inputid").value;
</script>    

您还可以将默认值更改为新值

<script>
document.getElementById("inputid").value = 4000;     
</script>

A
Amranur Rahman

这部分你在 html 中使用

<input id="latitude" type="text" name="latitude"></p>

这是javaScript:

<script>
document.getElementById("latitude").value=25;
</script>

B
Bogdan Mates

你也可以试试:

document.getElementById('theID').value = 'new value';

设置新值并不是设置默认值。因此,这并不能解决问题。一旦您获得足够的声誉,您应该将其作为帖子的评论。
K
Kamil Kiełczewski

直接访问

如果您使用 ID,那么您可以直接访问 JS 全局范围内的输入

myInput.value = 'default_value'


m
mahmoud aoata

以下代码运行良好:

var $div = ('#js-div-hour input');
$div.attr('value','2022/01/10');