【问题标题】:Keep default value in textbox on focus [duplicate]在焦点上保持文本框中的默认值[重复]
【发布时间】:2013-04-24 06:50:12
【问题描述】:

我在默认值“DE”的网站上创建了一个输入字段(文本)。现在我遇到了以下问题。

<input type="text" id="iban" value="DE" />

当用户点击文本框时,默认值“DE”应该被删除,用户只能在文本框的默认值之后添加数字。所以我正在寻找一个 js 函数,它将文本框的默认值设置为只读。用户不应删除默认值。

如果可以,它是如何工作的?

【问题讨论】:

  • 我不希望在焦点上删除该值。我正在寻找一个可以将文本框的一部分标记为只读的功能。是的,我搜索了它,但我没有找到解决方案。
  • 谢谢,我会试试这个 Danny Beckett。

标签: javascript html


【解决方案1】:

您不能将值的一部分设置为只读...但是如果您想使用简单的解决方案(没有 javascript),您可以使用两个输入:

<input type="text" id="iban-prefix" value="DE" readonly/><input type="text" id="iban-value"/>

使用 css 排列它们,然后在您的服务器端连接这两个值。

或者:

javascript 解决方案:在您的表单上使用“onsubmit”事件调用 javascript 函数来检查用户输入的值中是否存在“DE”前缀,如果没有,则添加“DE”前缀。

希望这会有所帮助!

【讨论】:

  • 这个解决方案也有效。谢谢!!!
【解决方案2】:

无需使用 JavaScript。简单的 HTML 和 CSS 就可以很好地完成这项工作。

DE 移动到您的&lt;input&gt; 左侧的&lt;span&gt;

<span class="iban">DE</span><input type="text" id="iban" />

然后将&lt;span&gt;定位在内部&lt;input&gt;

span.iban
{
    position: relative;
}

input#iban
{
    margin-left: -25px;
    padding-left: 25px;
}

以上代码产生:

这是JSFiddle

【讨论】:

  • @Downvoter 请解释...
  • 用户只需要输入数字,不是吗?
  • @Arkana 这里的主要问题是如何在文本框中保留默认值。这就是为什么你的答案获得了 2 票反对。
  • @Arkana OP 现在已经接受了这个答案。请删除您的反对票。
  • 这就是我想要的。谢谢你。数字的重点不是我问题的重点。我知道它是如何工作的;)
【解决方案3】:

你可以试试这个 jQuery:

$(document).ready(function() {
    $("#iban").keydown(function(event) {

            if (event.keyCode < 48 || event.keyCode > 57 || event.keyCode == 46 || event.keyCode == 8) {
                event.preventDefault(); 
            }   

    });
});

我在这里找到它:https://snipt.net/GerryEng/jquery-making-textfield-only-accept-numeric-values/

编辑:并将其修改为防止退格和删除键

A working fiddle

希望对你有帮助!

【讨论】:

  • 这没有回答问题。
  • 在 Firefox 浏览器中不起作用
  • 抱歉,正如 Danny 所说,这不是我搜索的内容
  • 只是为了让您知道,删除此答案会增加您的声誉,因为它的得分为负。
猜你喜欢
  • 2020-03-18
  • 1970-01-01
  • 2011-10-04
  • 2012-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-04
相关资源
最近更新 更多