我正在尝试使用函数在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 :(得分:1)
肯定有!
我为你创造了这个小提琴:
<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());
});
[基于评论的更新]
我根据您的新代码示例为您调整了它。这看起来怎么样?
$('#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();
});
答案 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')上的事件blur
或focusout