2013-07-10 10 views
2

我有一個代碼生成器窗體,有2個文本框。第一個需要12位數的代碼,然後當按下按鈕時,通過算法運行該代碼並吐出一個12位數的密鑰。我希望(對於這兩個字段實際上)數據用掩碼輸入,但如果選中並複製,則爲一串數字。使用JS或Jquery - 是否可以使用掩碼顯示只讀字段,但在複製時顯示未掩碼值?

例如:

用戶鍵入到文本框:123456789012 掩模顯示在框中作爲輸入:1234-5678-9012 用戶按下按鈕生成 在第二個文本文本框(只讀)顯示返回代碼爲:5798-1521-4886 當用戶複製第二個文本框並將其粘貼到記事本中時,值爲:579815214886

這可能嗎?我使用了大量的JQuery遮罩插件,但它們都仍然在字符串中複製/粘貼遮罩數據。我唯一能想到的另一件事是,當一個領域獲得焦點去除面具,但是當它失去了應用面具的焦點時。有沒有更好的辦法?

謝謝你的幫助。

+0

您可以將「複製」和「粘貼」事件綁定到輸入。 – gustavodidomenico

+0

@gustavodidomenico並不重要。在「複製」事件發生時,文本已經被複制,您不能改變它。 '粘貼'與此無關 – Ian

+0

只是不同意你。 – gustavodidomenico

回答

0

我通過在提交表單時刪除掩碼來解決它。當獲得焦點時還要移除遮罩,並在焦點丟失時應用遮罩。

-1

其實我只能訪問IE瀏覽器。

首先一個簡單的輸入框:

<input type="text" id="field" /> 

其次,結合副本事件(在地方上的jQuery更高版本使用綁定的):

$(function() { 
    $("#field").bind("copy", function (e) { window.clipboardData.setData("Text", "MyCustomText"); }); 
}); 

當你複製輸入框內的文字,將「MyCustomText」放入剪貼板數據中。你可以用沒有掩碼的字段替換它。

+0

剛試過那段代碼。我使用最新的jQuery,因此我將「綁定」更改爲「開」,將「#field」更改爲「#overrideCode」,並且我試着將「MyCustomText」的硬編碼值設置爲「blahblahblah」。 如果我理解你,我應該能夠從id =「overrideCode」的文本框中複製值,並且它應該粘貼「blahblahblah」的值。 到目前爲止,我沒有這樣的結果。 – mvanella

+0

您使用的是Internet Explorer嗎? – gustavodidomenico