案例1:控制輸入
假設你至少可以包裝所有的貨幣值,像這樣的東西:
<span class="money-value">£200.00</span>
<span class="money-value">£300.50</span>
而且你可以添加按鈕聲明:
<button id="secret-button">hide</button>
然後,你可以有一些jQuery代碼這樣做:
/**
* Simple search and replace version.
*/
$(function() {
$("#secret-button").click(function() {
$(".money-value").html($(".money-value").html().replace(/[0-9]/g,"X"));
});
});
或更先進的一個具有:
/**
* Complet version.
*
* 1) on button click, if asking to hide:
* 1.1) iterate over all entries, save their text, and replace it with markers
* 1.2) toggle the button's text to "show"
* 2) on button click, if asking to show:
* 2.1) iterate over all entries, restore previous text
* 2.2) clear the hidden store
* 2.3) toggle the button's text to "hide"
*/
$(function() {
var hiddenStore = [];
$("#secret-button").click(function() {
if ($(this).html() == "hide") {
$(".money-value").each(function() {
var text = $(this).html();
hiddenStore.push(text);
$(this).html(text.replace(/[0-9]/g,"X"));
});
$(this).html("show");
} else {
$(".money-value").each(function (i) {
var text = hiddenStore[i];
$(this).html(text);
});
hiddenStore = [];
$(this).html("hide");
}
});
});
完整的解決方案是在這裏:在這裏看到:http://jsfiddle.net/u79FV/
備註:
- 這不會輸入外地工作值
- 這是假定您的文本項已被標記如上圖所示
- 請問您要使用按鈕的狀態變化的東西。
- 保存這些值並放回原處。
- 即使動態添加新字段也可以工作。
- Shankar Sangoli的answer使用不同的方式保存存儲的數據,您可以考慮使用不同的方式(使用jQuery
.data()
方法)。
- 您可能希望將按鈕切換爲
<input type="button" />
標籤,在這種情況下,您將使用.val()
而不是.html()
來切換其文本。
案例2:自由輸入
假設你沒有對其中的值可以顯示出來,那麼你需要做一些更復雜的,這是在整個頁面看起來控制看起來像貨幣格式的東西。 我建議反對它。
但是,jQuery Highlight插件可能是需要看的東西,因爲它的代碼做了類似的事情(因爲它搜索要修改的代碼段),然後您可以重用一些解決方案1以使其適合你的目的。
儘管如此,這種設計很難用傻瓜式設計。
是的,我會在課堂上包裝他們。謝謝Heylem我也會研究這一點。 ;-) – Darren 2012-02-13 15:05:21
@Darren:現在查看編輯的完整解決方案。 – haylem 2012-02-13 15:07:42
Haylem!非常感謝,這完美的作品!謝謝你這麼清楚地解釋這一點,非常感謝! :-) – Darren 2012-02-13 15:23:00