2016-04-22 76 views
1

我試圖阻止點擊事件追加到html元素,當字符長度大於10時,但我想我遇到了語法錯誤,我可以'不知道。 (只是一些更多的信息,這是一個可選的計算器項目,有可能是更優雅的方式來做到這一點,但我們應該嘗試沒有任何深入的JS/jQuery學習)。這是我用來在將代碼放入我的文件之前測試代碼的jsFiddle。返回元素的文本長度(jquery)

我想最簡單的方法是將每個數字推入一個元素(屏幕中繼),然後抓住整個事物並應用eval()。我試圖讓控制檯在註冊超過10的字符限制時報告,但我沒有收到任何東西。感謝指針! (編輯:因爲舉止)

https://jsfiddle.net/vx09p7kk/

// Evaluate value of screen 

$("#equals").click(function() { 
    var x = ($("#screen-relay").text()); 
    var finalValue = eval(x); 

    console.log(finalValue); 

    $("#output").html(finalValue); 
}); 

// Clear Function 

$("#clear").click(function() { 
    ($("#screen-relay, #output").text("")); 
}); 

// Char Limit Function 

var CharCount = ($("#screen-relay").text().length); 
if(CharCount > 10) { 
    console.log(bam) 
}; 
+0

screen-relay是輸入框嗎? –

+1

爲什麼不使用maxlength attr? – guradio

+1

CharCount只在一開始評估一次。把它放到你的點擊處理程序中。 –

回答

0

可否請你看看下面更新小提琴鏈接:

https://jsfiddle.net/vx09p7kk/4/

我只是增加了一個計數器totalCharEntered其在每個字符插入時增加,當我們點擊清除按鈕時清除:

// Buttons 
var totalCharEntered = 0; 
$("#one").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>1</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 
$("#two").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>2</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 
$("#plus").click(function() { 
    if(totalCharEntered <10){ 
    $("<span>+</span>").appendTo("#screen-relay"); 
    totalCharEntered++; 
    } 
}); 

// Clear Function 

$("#clear").click(function() { 
    ($("#screen-relay, #output").text("")); 
    totalCharEntered = 0; 
}); 

我認爲這會對您有所幫助。

+0

很棒,我在數組循環之前看到過,但沒有想到這一點。非常感謝你。 編輯:如果任何其他貢獻者檢查回來,謝謝你,我正在嘗試你所有的建議。 – Keenanp

+0

謝謝@Keenanp ...':)'! – vijayP