获取wordpress中输入字段的实时值

时间:2013-03-13 19:40:23

标签: javascript jquery 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值在保存之前不会改变,然后当您再次保存时,它会设置变量为新值。)

有没有办法在每次用户使用我的方法在输入框中输入任何内容(使用,更改,键入和点击)时将变量设置为更新?

4 个答案:

答案 0 :(得分:1)

肯定有!

我为你创造了这个小提琴:

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);
});

答案 1 :(得分:0)

每次输入失去焦点时,您都​​可以使用focusout()来捕获输入。

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

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

答案 2 :(得分:0)

您必须绑定到输入框,以便在用户输入字符时更新变量:
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/

- 更新 -

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

使用超时以便可以限制更新代码

- 更新2 -

上面的代码按原样运行 - 但是由于每次按键都会更改每个变量,因此很多开销 - 无论是否输入被修改 -

如果你准备用一个函数做这个并且想要提高性能,我会添加延迟函数(在我的第二个小提琴中),然后修改你的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);
  }

答案 3 :(得分:0)

处理$('#inputBox')上的事件blurfocusout