javascript中的Onclick属性操作
Onclick attribute manipulation in javascript?
我有一个输入字段,其中有一些预定义的文本解释它的用途。如果用户单击,它应该是空白的,以便用户可以写他/她自己的。但是,如果用户已经输入了自定义文本,并且由于某种原因再次单击该字段,则不应该发生这种情况。
第一部分有效,第二部分无效。我需要如何调整这个代码?
<input type="text" value="Write something..." firstclick=true
onclick="if(this.getAttribute('firstclick')) {
this.value='';this.setAttribute('firstclick',false);} ;"/>
<input type="text" value="Write something..."
onfocus="if(this.value=='Write something...'){ this.value='';}"
onblur="if(this.value==''){this.value='Write something...';}">
使用onfocus和onblur代替:)
您可能想要onfocus,请看下面的示例:
<input type="text" value="Name"
onfocus="if(this.value === 'Name'){this.value = ''}"
onblur="if(this.value === ''){ this.value = 'Name'}" >
如果当前焦点上的值为"Name",则设置该值为空
如果blur的当前值没有值,设置为Name
一个更好的方法是将自动清除设置为一个函数,这样你就不必每次都重新输入了:
function autoClearField(domElement)
{
var defaultValue = domElement.value;
domElement.onfocus = function()
{
if(this.value === defaultValue)
{
this.value = '';
}
}
domElement.onblur = function()
{
if(this.value === '')
{
this.value = defaultValue;
}
}
}
对于HTML,使用:
<input id='name' type="text" value="Name" >
像这样调用函数将设置autoclear:
autoClearField(document.getElementById('name'));
一个工作的jsFiddle
如前所述,你应该在支持html5占位符属性的浏览器中使用它。
<input type="text" id="name" />
<script>
function addPlaceHolder(elt, defaultText) {
if("placeholder" in document.createElement("input"))
elt.placeholder = defaultText;
else
{
var defaultValue = defaultText;
elt.value = defaultText;
elt.onfocus = function()
{
if(this.value === defaultValue)
{
this.value = '';
}
}
elt.onblur = function()
{
if(this.value === '')
{
this.value = defaultValue;
}
}
}
}
addPlaceHolder(document.getElementById('name'), 'defaultText');
</script>
将字符串"true"answers"false"转换为bool有问题。
看这个小提琴。显然在JS中:
Boolean("false"); // == true
!! "false"; // == true
我是这样做的:
firstclick='1' value="Antwort verfassen..."
onfocus="if(this.getAttribute('firstclick')) {
this.value='';this.removeAttribute('firstclick');
};"
相关文章:
- 从JavaScript访问struts操作中的属性
- javascript对象操作:根据指定条件选择属性
- 更改跳转到URL操作SSRS 2008 R2的链接目标属性(rc:LinkTarget)
- CKEditor-对每个具有类名的属性执行一些操作
- 未捕获类型错误:无法设置未定义的属性“操作”
- 当我在操作属性中写入页面名称时,文件图像不会上传
- 如何使用复选框显示表单的更多选项并更改表单的操作属性
- 在 JavaScript 中创建对象和操作属性
- 如何使用操作属性发送 html 表单数据而不重定向到另一个页面
- 不带 JS 的 JSP 动态表单操作属性
- 将锚标记与表单的操作属性结合使用
- 如何在新页面加载后提交 CFform 并更改其操作属性
- PHP 上传,按操作属性提供动态网址
- 无法动态更改表单操作属性
- 从第一个和更改操作属性填充第二个选择列表
- 提交隐藏了操作属性的表单
- 为什么在原型链上操作属性实际上是在对象上创建它
- 使用js库渐变dom对象时最好的操作属性
- ExtJS操作属性网格源信息
- 使用表单的操作属性的差异