我希望在单击时清除输入字段,但仅在您第一次单击时清除。使用jQuery,您可以像这样实现:将以下代码段放在文档中的任何位置(假设已加载了id = inputf
的元素):
$('#inputf').one("click", function() {
$(this).val("");
});
正如您在上面的代码段中所看到的,输入字段必须具有值为id
的{{1}}属性。
但有没有办法将该代码段移动到输入字段的inputf
属性,如
onclick
?看起来我不能使用函数<input type="text" onclick="$(this)....val('')" />
,因为该函数需要一个包含一个或多个JavaScript事件类型的字符串。但我只想在每次调用时执行.one()
,而不指定一个或多个事件类型。
答案 0 :(得分:1)
<input type="text" onclick="if(flagCount === 0){this.value='';flagCount++;}" />
将var flagCount = 0
声明为script
中head
标记中的全局变量。
答案 1 :(得分:1)
仅在您请求后发布此内容,我不提倡内联处理程序。
<input type="text" onclick="this.onclick = null; this.value = ''; " />
答案 2 :(得分:0)
如果您想对所有文本输入字段执行此操作,则可以执行以下操作:
$("input[type=text]").each(function(){
$(this).one("click", function() {$(this).val = "";});
});
...或者您可以优化选择器以获取特定div中的每个输入字段,例如:
$("#divId input[type=text]")
答案 3 :(得分:0)
您不需要jQuery在元素标记上执行one
之类的事件。做这样的事情:
<input onclick="function(event) { /* do something */ this.onclick = function(){}; }" />
您的函数将仅在第一次执行,然后新的void函数将附加到onclick事件回调。
答案 4 :(得分:0)
你可以编写自己的简单jQuery插件:
(function( $ ) {
$.fn.clearOnce = function() {
this.one("click", function() {
$(this).val("");
});
};
})( jQuery );
在此之后你可以:
<input type="text" onclick="$(this).clearOnce();" />
在3分钟内写完,未经测试; - )