Javascript jQuery onClick一次打开/关闭开关
我正试图找出如何做某事,但却找不出正确的术语 我想做的是有一个文本框(#price),一旦点击它就会打开一个pdf计算器,它会在完成时预先填充文本框,或者允许用户输入金额。但是如果文本框是“选项卡式”的,而不是onClick,我也希望它能起作用。(可能是onBlur)基本上,只要使用文本框,我就需要它像那样工作。但是如何让onClick知道何时可以输入金额,或者是否需要打开计算器 还有一个棘手的问题是,我需要一个开/关开关,基本上是一个复选框,当它被选中时,它允许弹出pdf计算器,而当它没有被选中时,它只是忽略它,并允许仍然输入价格Javascript jQuery onClick一次打开/关闭开关,javascript,jquery,Javascript,Jquery,我正试图找出如何做某事,但却找不出正确的术语 我想做的是有一个文本框(#price),一旦点击它就会打开一个pdf计算器,它会在完成时预先填充文本框,或者允许用户输入金额。但是如果文本框是“选项卡式”的,而不是onClick,我也希望它能起作用。(可能是onBlur)基本上,只要使用文本框,我就需要它像那样工作。但是如何让onClick知道何时可以输入金额,或者是否需要打开计算器 还有一个棘手的问题是,我需要一个开/关开关,基本上是一个复选框,当它被选中时,它允许弹出pdf计算器,而当它没有被选
有人对我如何实现这一目标有什么建议或指点吗?将事件处理程序绑定到
focus
事件(blur
用于控件失去焦点时)
然后在
eventHandler()
中,检查计算器是否需要调用,方法是检查它是否已打开:$(“#calculatorDiv”).is(“:visible”)
,并检查复选框是否“checked”):$(“#checkboxId”).is(“:checked”)
,并根据打开情况将事件处理程序绑定到事件焦点(blur
用于控件失去焦点时)
然后在eventHandler()
中,检查计算器是否需要调用,方法是检查它是否已打开:$(“#calculatorDiv”).is(“:visible”)
,并检查复选框是否“checked”):$(“#checkboxId”).is(“:checked”)
,并根据打开情况将事件处理程序绑定到事件焦点(blur
用于控件失去焦点时)
然后在eventHandler()
中,检查计算器是否需要调用,方法是检查它是否已打开:$(“#calculatorDiv”).is(“:visible”)
,并检查复选框是否“checked”):$(“#checkboxId”).is(“:checked”)
,并根据打开情况将事件处理程序绑定到事件焦点(blur
用于控件失去焦点时)
然后在您的eventHandler()
中,通过检查计算器是否已打开来检查是否需要调用:$(“#calculatorDiv”).is(“:visible”)
,并检查您的复选框是否“checked”):$(“#checkboxId”).is(“:checked”)
,并根据打开它。事件您正在查找的是onFocus和onBlur。我会将一个函数绑定到onFocus事件,首先检查相应的复选框是否有“true”(或“checked”)值,如果有,则继续,如果没有,则不执行任何操作
如果我没有在手机上回答这个问题,我会在JSFIDLE中为您创建一个示例。您要查找的事件是onFocus和onBlur。我会将一个函数绑定到onFocus事件,该函数首先检查对应的复选框是否有“true”(或“checked”)值,如果有,则继续,如果没有,则不执行任何操作
如果我没有在手机上回答这个问题,我会在JSFIDLE中为您创建一个示例。您要查找的事件是onFocus和onBlur。我会将一个函数绑定到onFocus事件,该函数首先检查对应的复选框是否有“true”(或“checked”)值,如果有,则继续,如果没有,则不执行任何操作
如果我没有在手机上回答这个问题,我会在JSFIDLE中为您创建一个示例。您要查找的事件是onFocus和onBlur。我会将一个函数绑定到onFocus事件,该函数首先检查对应的复选框是否有“true”(或“checked”)值,如果有,则继续,如果没有,则不执行任何操作
如果我没有在手机上回答这个问题,我会在JSFIDLE中为您创建一个示例。1.一个文本框(#price),单击一次就会打开一个pdf计算器
使用jQuery的click()
处理程序或bind(“click”,…)
var $price = $("#price");
$price.click(function() {
$("#pdf_calculator").fadeIn();
});
2.但是如果文本框也是“选项卡式”的,我也希望它能起作用
使用focus
事件来了解输入何时处于活动状态(即,已“选项卡化”到)。或者,如果您想知道用户何时“离开”输入字段,也可以使用blur
事件。(“blur”与“focus”相反)
3.但是如何让onClick知道何时可以输入金额,或者是否需要打开计算器?
获取用户键入的金额,将其转换为数值,然后执行验证步骤
$price.on("focus click", function() {
// Do some validation checking on the amount entered.
var enteredValue = parseFloat($price.val());
if (!isNaN(enteredValue) && enteredValue > 0) {
$("#pdf_calculator").fadeIn();
}
});
4.还有一个棘手的问题是,我需要一个开/关开关,基本上是一个复选框,当它被选中时,它允许弹出pdf计算器,而当它没有被选中时,它只是忽略它,允许仍然输入价格。
只需使用jQuery的is(“:checked”)
检查复选框,然后结合上述步骤,您的完整工作代码如下所示:
var $price = $("#price");
$price.on("focus click blur", function() {
// your checkbox element
var checkbox = $("#show_calculator");
// Check if the checkbox is checked
if (checkbox.is(":checked")) {
// convert the entered string to a number
// then validate it according to your needs
var enteredValue = parseFloat($price.val());
if (!isNaN(enteredValue) && enteredValue > 0) {
// if all conditions are met,
// show the pdf calculator
$("#pdf_calculator").fadeIn();
}
}
});
对于pdf表单(以及从pdf表单中输入和输出值),没有一种简单的方法不涉及“黑客”(可能在不同的浏览器中工作,也可能不工作)。如果pdf只有一个输入,那么您可以捕获表单弹出窗口中的键盘事件,并将其发送回HTML表单(这是一个丑陋的黑客行为),但如果这是我的项目,我会将pdf功能转换为javascript,然后你就有了所需的所有自由,你的计算器与你的应用程序的其余部分100%兼容
希望这能有所帮助!1.一个文本框(#price),单击它会打开一个pdf计算器
使用jQuery的click()
处理程序或bind(“click”,…)
var $price = $("#price");
$price.click(function() {
$("#pdf_calculator").fadeIn();
});
2.但是如果文本框也是“选项卡式”的,我也希望它能起作用
使用focus
事件了解输入何时处于活动状态(即,已“选项卡化”t
var $price = $("#price");
$price.on("focus click blur", function() {
// your checkbox element
var checkbox = $("#show_calculator");
// Check if the checkbox is checked
if (checkbox.is(":checked")) {
// convert the entered string to a number
// then validate it according to your needs
var enteredValue = parseFloat($price.val());
if (!isNaN(enteredValue) && enteredValue > 0) {
// if all conditions are met,
// show the pdf calculator
$("#pdf_calculator").fadeIn();
}
}
});