2013-03-13 15 views
0

我想設置爲在輸入框中當前文本的變量,在「編輯帖子」屏幕WordPress的輸入字段的現場值獲取的wordpress

我目前有:

jQuery(document).on("change, keyup, click", "#input_box_1, #input_box_2, #input_box_3", functionName); 

    function functionName(){ 
     var myvar = parseFloat(jQuery("#input_box").val()); 
    var myvar2 = parseFloat(jQuery("#input_box_2").val()); 
    var myvar3 = parseFloat(jQuery("#input_box_3").val()); 
     } 
    }); 

哪一個當然只在保存草稿TWICE時起作用(當你第一次輸入一個值時,輸入框的html值不會改變直到你保存它,然後當你再次保存時,它會設置變量爲新值)。

有沒有一種方法可以設置每次用戶在輸入框中使用我的方法鍵入任何內容(使用,更改,鍵入和單擊)時更新的變量?

回答

0

你必須whenenver用戶輸入字符,從而使變量更新綁定到輸入框:
JS:

$('#input_box').on('keyup', function() { 
    var my_value = $(this).val(); 
    $('#result').html(my_value); 
}); 

HTML:

<input id="input_box" /> 
<p id="result"></p>  

小提琴:http://jsfiddle.net/a8jbF/

--update -

新小提琴:http://jsfiddle.net/a8jbF/1/

使用超時,以便更新代碼可以節流

- 更新2 -

上面的代碼是按照原樣工作的 - 但由於每次按鍵都會改變每個變量,因此它的開銷很大 - rega rdless如果它是輸入被修改 -

如果你設置這樣做與一個功能,並希望提高性能,我會添加在延遲功能(在我的第二個小提琴),然後修改您的functionName一點切(一些)開銷:

function functionName(){ 
    // wrap your variable set in a delay 
    delay(function(){ 
     // actions to do after the delay is complete 
     var myvar = parseFloat(jQuery("#input_box").val()); 
     var myvar2 = parseFloat(jQuery("#input_box_2").val()); 
     var myvar3 = parseFloat(jQuery("#input_box_3").val()); 
    }, 1000); 
    } 
+0

我同意這是他上面提到的問題,但每次按下某個鍵時都會運行此功能可能會快速建立,尤其是因爲我們不知道輸入字段有多大。 – tymeJV 2013-03-13 19:52:25

+0

偉大的一點。更新我的帖子使用延遲/超時 – jarmie 2013-03-13 20:06:34

+0

謝謝你,看起來不錯,但我試圖在一個函數內部做到這一點,以便它不會變得太多代碼,我更新了我的問題,請你幫我解決與我的具體情況 – user1202292 2013-03-13 22:03:25

0

每次輸入失去焦點時,您都​​可以使用focusout()捕獲輸入。

$("#input_box").focusout(function() { 
    //Assign the value somewhee 
    var myVar = $(this).val(); 
}); 

演示:http://jsfiddle.net/8wY7Q/

+0

我想用change,keyup和click來覆蓋所有的基礎,有沒有我能實現的方法? (我用更多的代碼更新了我的問題) – user1202292 2013-03-13 22:09:51

0

處理事件上的$( '#輸入框')

+0

我想使用變化,鍵入和點擊覆蓋所有基地,有沒有我可以實現的方法? (我用更多的代碼更新了我的問題) – user1202292 2013-03-13 22:14:34

1

有肯定的是blurfocusout

我創造了這個搗鼓你:

http://jsfiddle.net/7HQ4W/

<p>Original Input Value: 
    <br /> 
    <input type="text" id="origVal"> 
</p> 
<p>Target Input Value: 
    <br /> 
    <input type="text" id="tarVal"> 
</p> 

$('#origVal').keyup(function() { 
    $('#tarVal').val($(this).val()); 
}); 

[更新基於評論]

http://jsfiddle.net/7HQ4W/1/

我調整它爲您根據您的新代碼示例。這看起來如何?

$('#input_box_1, #input_box_2, #input_box_3').keyup(function() { 
    var myVar1 = $('#input_box_1').val(); 
    var myVar2 = $('#input_box_2').val(); 
    var myVar3 = $('#input_box_3').val(); 
    $('#display').html("<p>myVar1 = " + myVar1 + 
     "<p>myVar2 = " + myVar2 + 
     "<p>myVar3 = " + myVar3); 
}); 
+0

這似乎工作得很好,但在我的具體情況我不知道如何實現它,我用更多的代碼,我寫了更新我的問題(我是新來的JavaScript )。你能再看一下嗎? – user1202292 2013-03-13 22:08:02