天道酬勤,学无止境

以重力形式使用 JQuery 获取价值(Get value with JQuery in gravity form)

问题

我正在尝试向我的重力形式 (WordPress) 添加一个公式,其中包括指数。我无法使用内置计算器,因为没有指数函数。 它基本上是一个贷款计算器。

r=rate ;(form_id=4)/12

p=贷款金额;(form_id=1)

D=duration ;(form_id=2, [下拉菜单]) * 12

X=p(r/1-(1+r)^-D)

X=还款

现在我以下拉和书面数字的形式从表单中得到 r、p 和 D。

到目前为止,我已经放了一个 HTML 框并在其中插入了以下代码:

<script>
gform.addFilter( 'gform_calculation_result', function(result, formulaField, formId, calcObj ){    
if ( formulaField.field_id == "2" ) {
    result = /****/;
}
return result;
});
</script>

我没有任何编程背景,而是从支持团队成员那里得到的。

我的理解是这段代码将替换 field_id 2 的计算(用我的公式的结果显示 X=[monthly repayment] -> "/****/"

但是我必须编写公式,我不知道如何使用 jQuery 从表单中获取值并将它们放入公式中。

我从 W3school 和另一个网站上发现了 JavaScript 数学函数,所以我在编写公式时没有问题,我只需要 jQuery 帮助来获取值。

我想知道是否有人可以帮助我?

回答1

您可以使用 jQuery .val() 获取字段值。 所以如果你想获得字段 5 的值,你可以使用这样的东西

var field_five = jQuery('#input_2_5').val();

输入 id 遵循 input_{form_id}_{field_id} 的命名约定,对于多输入字段,它们将以 _{input_no} 结尾。 您可以通过使用浏览器开发人员工具检查字段来确认输入 id 是什么,您会在其中看到类似的内容。

<li id="field_2_5" class="gfield">
    <label class="gfield_label" for="input_2_5">Number</label>
    <div class="ginput_container">
        <input name="input_5" id="input_2_5" type="text" value="" class="medium" tabindex="5">
    </div>
</li>

要在计算中使用检索到的值,脚本将如下所示:

<script>
gform.addFilter( 'gform_calculation_result', function(result, formulaField, formId, calcObj ){    
    if ( formulaField.field_id == "2" ) {
        var field_five = jQuery('#input_2_5').val();
        result = field_five * 12;
    }
    return result;
});
</script>

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Android低通滤波器和高通滤波器(Android Low pass filter and High pass filter)
    问题 我有一个非常基本的问题。 在Android加速度计的情况下,低通滤波器和高通滤波器是什么? 当我看到加速度传感器的输出时,我看到如果我不使用任何过滤器,(案例:我的手机在桌子上保持闲置状态),我得到z轴+ ve值。 现在,如果我认为使用基本物理学,它会为我提供小克的精确值(9.8左右),即重力引起的加速度。 为了获得线性加速度,如果我向手机施加任何力,它将改变加速度计的值,但是它将是我应用的g + a 。 因此,要获得a ,为什么我就不能直接从我从加速度传感器所获得的价值减去? 有什么用? 我了解低通的基本定义:允许低值,高通:允许高值。 回答1 如果查看文档,将会发现SensorEvent返回一个数组,该数组代表所有力的向量。 http://developer.android.com/reference/android/hardware/SensorEvent.html#values这是加速度的分量分解成每个轴的方式: values[0] //acceleration on x axis values[1] //acceleration on y axis values[2] //acceleration on z axis 您需要找到重力在哪个方向运行,然后将其分解为其组成部分。 重力的大小始终为9.8,但方向以及如何分解为组成部分将发生变化。
  • 如何使用jQuery获取输入类型?(How to get input type using jquery?)
    问题 我有一个页面,其中输入类型总是变化的,我需要获取取决于输入类型的值。 因此,如果类型是单选,我需要获取选中的内容,如果是复选框,则现在需要选中的内容,如果是下拉列表,则需要知道选择了哪个,是否需要一个文本/文本区域,我需要知道值。 关于如何做到这一点的任何想法? 回答1 EDIT,2013年2月1日。由于此答案的普及以及1.9(和2.0)版中有关属性和属性的jQuery更改,我添加了一些注释和小提琴,以查看访问输入的属性/属性时它如何工作,按钮和一些选择。 这里的小提琴:http://jsfiddle.net/pVBU8/1/ 获取所有输入: var allInputs = $(":input"); 获取所有输入类型: allInputs.attr('type'); 得到值: allInputs.val(); 注意:.val()与:check不同,它们是相关的。 用: .attr("checked"); 编辑2013年2月1日-重新:jQuery 1.9使用prop()而不是attr(),因为attr不会为已更改的属性返回正确的值。 .prop('checked'); 或简单地 $(this).checked; 获取支票的价值-无论当前是什么。 或者,如果只希望那些已被检查的代码,则只需使用':checked'。 编辑:这是获取类型的另一种方法: var
  • 如何在 jQuery 中的会话中获取价值(How to get value in the session in jQuery)
    问题 我是 jQuery 的初学者。 我想在一个 HTML 页面中设置值,我必须在另一个 HTML 页面中获取它们。 这是我现在正在尝试的一段代码: 要在会话中设置值: $.session.set(userName, $("#uname").val()); 从会话中获取值: $.session.get('userName'); 回答1 假设你正在使用这个插件,你是在滥用.set方法。 .set必须以字符串形式传递键名和值。 我想你的意思是写: $.session.set("userName", $("#uname").val()); 这将会话存储中的userName键设置为输入的值,并允许您使用以下方法检索它: $.session.get('userName'); 回答2 会话存储在服务器上,并从服务器端代码设置,而不是客户端代码(如 JavaScript)。 你想要的是一个 cookie,有人在这个 Stack Overflow 问题中给出了一个精彩的解释:How do I set/unset cookie with jQuery? 您可以潜在地使用会话并使用 jQuery 和 AJAX 设置/检索它们,但是如果 Cookies 能够做到这一点,那就完全是矫枉过正了。
  • jQuery.ajax()笔记
    Example: 加载并执行一个 JS 文件。$.ajax({ type: "GET", url: "test.js", dataType: "script" });Example: 保存数据到服务器,成功时显示信息。$.ajax({ type: "POST", url: "some.php", data: "name=John&location=Boston", success: function(msg){ alert( "Data Saved: " + msg ); } });Example: 装入一个 HTML 网页最新版本。$.ajax({ url: "test.html", cache: false, success: function(html){ $("#results").append(html); } });Example: 同步加载数据。发送请求时锁住浏览器。需要锁定用户交互操作时使用同步方式。var html = $.ajax({ url: "some.php", async: false }).responseText;Example: 发送 XML 数据至服务器。设置 processData 选项为 false,防止自动转换数据格式。var xmlDocument = [create xml document]; $.ajax({ url: "page
  • 上的jQuery Change事件元素-以任何方式保留以前的价值?(jQuery Change event on an <input> element - any way to retain previous value?)
    问题 我今天上午一直在搜索,但找不到任何简单的解决方案...基本上,我想捕获输入元素中的更改,但也想知道以前的值。 这是更改事件和最简单形式的输入元素。 显然,我可以使用$(elem).val()获得新值,但是是否缺少一种偷偷摸摸的方法来获取先前的值? 我在jQuery API中看不到任何东西可以执行此操作,但是也许有人已经执行了此操作并且有一些提示? <script> $(document).ready(function(){ $('#myInputElement').bind('change', function(){ //var oldvalue = ??? var newvalue = $(this).val(); }); }); </script> <input id="myInputElement" type="text"> 我不反对编写自己的解决方案,我只是想确保我不在这里重新创建轮子。 回答1 更好的方法是使用.data存储旧值。 这样可以避免创建全局变量,您应该远离全局变量,并将信息封装在元素中。 此处记录了一个真实的示例,说明了为什么Global Vars不好 例如 <script> //look no global needed:) $(document).ready(function(){ // Get the initial value var $el =
  • jQuery和TinyMCE:textarea值未提交(jQuery and TinyMCE: textarea value doesn't submit)
    问题 我正在使用jQuery和TinyMCE提交表单,但是序列化存在问题,因为Textarea值未发布。 这是代码: <form id="myForm" method="post" action="post.php"> <textarea name="question_text" id="question_text" style="width:543px;height:250px;"></textarea> </form> 语言:lang-js $('#myForm').submit(function() { $.ajax({ type: 'POST', url: $(this).attr('action'), data: $(this).serialize(), success: function(data) { $('#result').fadeIn('slow'); $('#result').html(data); $('.loading').hide(); } }) return false; }); tinyMCE.init({ // General options mode : "textareas", theme : "advanced", // Theme options theme_advanced_buttons1 : "bold,italic
  • 我如何从表单提交事件中获取导致提交的按钮?(How can I get the button that caused the submit from the form submit event?)
    问题 我正在尝试查找触发表单提交的“提交”按钮的值 $("form").submit(function() { }); 我可以为每个按钮触发$(“ input [type = submit]”)。click()事件并设置一些变量,但这似乎不如提交时将按钮从表单中拉出的方式那么优雅。 回答1 我利用了这个答案中所勾勒的document.activeElement :如何使用jQuery获取焦点元素? $form.on('submit', function() { var $btn = $(document.activeElement); if ( /* there is an activeElement at all */ $btn.length && /* it's a child of the form */ $form.has($btn) && /* it's really a submit element */ $btn.is('button[type="submit"], input[type="submit"], input[type="image"]') && /* it has a "name" attribute */ $btn.is('[name]') ) { console.log("Seems, that this element was clicked:"
  • 如何在jQuery中获取textarea的值?(how to get the value of a textarea in jquery?)
    问题 我有这种形式,即时通讯试图从文本区域获取价值。 由于某种原因,它不想这样做。 <form action="/profile/index/sendmessage" method="post" enctype="application/x-www-form-urlencoded"> <div class="upload_form"> <dt id="message-label"><label class="optional" for="message">Enter Message</label></dt> <dd id="message-element"> <textarea cols="60" rows="5" id="message" name="message"></textarea></dd> <dt id="id-label"> </dt> <dd id="id-element"> <input type="hidden" id="id" value="145198" name="id"></dd> <dt id="send_message-label"> </dt> <dd id="send_message-element"> <input type="submit" class="sendamessage" value="Send" id="send_message
  • 获取LinearLayout重力(Get LinearLayout Gravity)
    问题 我需要获取LinearLayout的引力值。 我检查了文档,只发现了如何设置它( setGravity(value) )。 有人知道是否有一种方法可以获取LinearLayout重力吗? 谢谢 回答1 我自己没有尝试过,但是从逻辑上讲,它应该可以工作。 问题在于变量mGravity (保存了LinearLayout的当前重力信息)是private 。 并且不存在访问器方法来提供对它的访问。 解决此问题的一种方法是使用Reflection API。 另一种(并且更加干净)的方法是扩展LinearLayout并覆盖setGravity(int) 。 例如,像这样: public class LinearLayoutExposed extends LinearLayout { // Our own gravity! private int mGravityHolder = Gravity.START | Gravity.TOP; public GravLinearLayout(Context context, AttributeSet attrs) { super(context, attrs); } @Override public void setGravity(int gravity) { if (mGravityHolder != gravity) { // We don
  • 如何使用JavaScript / jQuery获取表单数据?(How can I get form data with JavaScript/jQuery?)
    问题 是否有一种简单的单行方式来获取表单数据,就像以经典的纯HTML方式提交那样? 例如: <form> <input type="radio" name="foo" value="1" checked="checked" /> <input type="radio" name="foo" value="0" /> <input name="bar" value="xxx" /> <select name="this"> <option value="hi" selected="selected">Hi</option> <option value="ho">Ho</option> </form> 输出: { "foo": "1", "bar": "xxx", "this": "hi" } 这样的事情太简单了,因为它不(正确地)不包含文本区域,选择,单选按钮和复选框: $("#form input").each(function () { data[theFieldName] = theFieldValue; }); 回答1 $('form').serialize() //this produces: "foo=1&bar=xxx&this=hi" 演示 回答2 使用$('form')。serializeArray(),它返回一个数组: [ {"name":"foo","value
  • 如何获得所选单选按钮的价值?(How to get value of selected radio button?)
    问题 我想从一组单选按钮中获取选定的值。 这是我的HTML: <div id="rates"> <input type="radio" id="r1" name="rate" value="Fixed Rate"> Fixed Rate <input type="radio" id="r2" name="rate" value="Variable Rate"> Variable Rate <input type="radio" id="r3" name="rate" value="Multi Rate" checked="checked"> Multi Rate </div> 这是我的js: var rates = document.getElementById('rates').value; var rate_value; if(rates =='Fixed Rate'){ rate_value = document.getElementById('r1').value; }else if(rates =='Variable Rate'){ rate_value = document.getElementById('r2').value; }else if(rates =='Multi Rate'){ rate_value = document.getElementById(
  • jQuery序列化不注册复选框(jQuery serialize does not register checkboxes)
    问题 我正在使用jQuery.serialize检索表单中的所有数据字段。 我的问题是它不会检索未选中的复选框。 它包括: <input type="checkbox" id="event_allDay" name="event_allDay" class="checkbox" checked="checked" /> 但不是这个 <input type="checkbox" id="event_allDay" name="event_allDay" class="checkbox" /> 如何获得未选中的复选框的“值”? 回答1 jQuery serialize紧密地模仿了标准格式在被附加到请求中的查询字符串或POST正文之前如何被浏览器序列化。 浏览器不包含未选中的复选框,这确实是有道理的,因为它们具有布尔状态-它们是由用户(包括)选择的,还是由用户(未包括)选择的。 如果需要将其序列化,则应问自己“为什么?为什么不只检查其在数据中是否存在?”。 请记住,如果JavaScript序列化表格数据的方式与浏览器的行为不同,那么您就消除了表格降级的任何可能性。 如果您仍然绝对需要这样做,只需使用<select>框,并<select> “是/否”。 至少到那时,禁用JS的用户不会与您的网站疏远,并且您不会违反HTML规范中定义的行为。 <select id="event_allDay"
  • 我怎么知道通过jQuery选择了哪个单选按钮?(How can I know which radio button is selected via jQuery?)
    问题 我有两个单选按钮,想要发布所选一个的值。 如何使用jQuery获得价值? 我可以像这样得到所有这些: $("form :radio") 我怎么知道选择了哪一个? 回答1 要获取ID为myForm的表单的选定radioName项的值,请执行radioName : $('input[name=radioName]:checked', '#myForm').val() 这是一个例子: $('#myForm input').on('change', function() { alert($('input[name=radioName]:checked', '#myForm').val()); }); <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form id="myForm"> <input type="radio" name="radioName" value="1" /> 1 <br /> <input type="radio" name="radioName" value="2" /> 2 <br /> <input type="radio" name="radioName" value="3" /> 3 <br /> </form> 回答2
  • pygame中的重力(Gravity in pygame [closed])
    问题 从目前的情况来看,这个问题不适合我们的问答形式。 我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。 如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我正在使用pygame制作平台游戏,我想为其添加重力。 现在,只有按箭头键时会移动的图片,下一步是重力。 这是我的代码: import pygame, sys from pygame.locals import * pygame.init() FPS = 30 fpsClock = pygame.time.Clock() DISPLAYSURF = pygame.display.set_mode((400, 300), 0, 32) pygame.display.set_caption("Jadatja") WHITE = (255, 255, 255) catImg = pygame.image.load("images/cat.png") catx = 10 caty = 10 movingRight = False movingDown = False movingLeft = False movingUp = False while True: #main game loop #update for event in pygame
  • 表单提交后如何进行Jquery回调?(How to do a Jquery Callback after form submit?)
    问题 我有一个简单的表单,其中remote = true。 此表单实际上位于HTML对话框中,单击“提交”按钮后,该对话框将立即关闭。 现在,在成功提交表单之后,我需要在HTML主页面上进行一些更改。 我尝试使用jQuery。 但这不能确保任务在表单提交的某种形式的响应之后执行。 $("#myform").submit(function(event) { // do the task here .. }); 如何附加回调,以便仅在成功提交表单后才执行我的代码? 有什么方法可以向表单添加一些.success或.complete回调? 回答1 我只是这样做- $("#myform").bind('ajax:complete', function() { // tasks to do }); 事情进行得很顺利。 有关更多详细信息,请参见此api文档。 回答2 我无法获得排名第一的解决方案来可靠地工作,但发现它可以工作。 不知道是否需要它,但是标签上没有动作或方法属性,以确保POST由$ .ajax函数处理并为您提供回调选项。 <form id="form"> ... <button type="submit"></button> </form> <script> $(document).ready(function() { $("#form_selector").submit
  • Android-加速下降(粉碎)(Android - Acceleration down (smash))
    问题 为不懂的人讲解的视频 无法正确回答此答案,请尝试通过其他解决方案来解决(100赏金已过时) 同样的问题,但更好的解释 这个问题被认为是正确的,但是根本没有,我用旧设备中兴通讯尝试了一下,并且大部分时间都可以使用,但是现在我有了Samsung Galazy A5 2016,但是无论在LG G3上都无法使用。 事情是尝试使用Accelerometer和一些Sensors我必须能够检测到我在视频上所做的这两个动作中的任何一个。 有两个动作: 粉碎(一点点速度) 自由落体 我让您决定并说服我什么是更好的选择,更轻松的选择是什么,我的意思是说,更好的选择适用于大多数设备。 回答1 固定设备的重力值+9.81,对应于设备的加速度(0 m / s2减去重力-9.81 m / s2)。 因此,如果设备从静止状态向下移动,则重力将小于9.81。 自由落体装置的重力等于0。 以下是确定设备是否开始向下移动的方法。 如果设备已经以恒定速度向下移动,则将无法确定设备是否向下移动,因为在这种情况下,没有向下的加速度,并且重力范数应该在9.81附近。 您需要使用TYPE_GRAVITY 。 如果设备没有TYPE_GRAVITY ,则使用低通滤波器TYPE_ACCELEROMETER来获取重力矢量。 如上所述,固定设备的重力矢量的范数等于9.81。 但是,此值将随设备而略有不同。 因此
  • 如何在不提交的情况下从FORM获取值?(How to get VALUE from FORM without Submitting it?)
    问题 我想在不提交表单的情况下从Form中获得价值,因为客户必须选择正确的房屋模型类型才能获得适合所选房屋模型的正确表单,而无需提交,只需选择房屋模型即可,例如,它继续之后的其他形式。 到目前为止,我已经尝试过: <form method="GET" action="foo.php"> <select name="house_model"> <option value="">------</option> <option value="<?php echo $model1;?>">Model 1</option> <option value="<?php echo $model2;?>">Model 2</option> <option value="<?php echo $model3;?>">Model 3</option> </select> </form> <?php $a = $_GET["housemodel"]; if($a<>'') { if($a == $model1) { echo "<input type=\"text\" name=\"a\" value=\"something model1\">"; } else if($a == $model2) { echo "<input type=\"text\" name=\"b\" value=\
  • 使用jQuery HTML帖子定位iframe(Target an iframe with a HTML Post with jQuery)
    问题 如果我使用jQuery或JavaScript撰写帖子,如何使其以iframe为目标而不是当前页面为目标? jQuery.post( url, [data], [callback], [type] ) 那是jQuery帖子的格式,好像没有任何地方可以指定目标,就像<form>标记中那样。 有任何想法吗? 回答1 您可以通过常规形式执行此操作: <form action="targetpage.php" method="post" target="iframename" id="formid"> <input type="hidden" name="foo" value="bar" /> </form> 然后,您可以使用jQuery提交表单: $("#formid").submit(); 回答2 也许您错过了AJAX请求的要点-为什么要尝试指定异步请求的“目标”? 这没有任何意义,因为AJAX的全部意义在于,来自服务器的请求被发送回Javascript,而没有页面重新加载或HTML目标。 如果您想将请求的结果加载到iframe上,则可以执行以下操作: $.post('myurl', function(data) { $('#myframe').html(data); }, 'html'); 回答3 您可以通过动态创建表单并将其附加到正文来解决表单中不允许存在表单的问题。
  • 使用jQuery或纯JS获取多选框的价值(Get value of multiselect box using jQuery or pure JS)
    问题 在下面显示的代码中,如何使用jQuery或纯JavaScript获取函数val()的multiselect框的值? <script> function val() { //Get values of mutliselect drop down box } $(document).ready(function () { var flag = 0; $('#emp').change(function () { var sub = $("OPTION:selected", this).val() if (flag == 1) $('#new_row').remove(); $('#topics').val(''); var html = '<tr id="new_row" class="new_row"><td>Topics:</td><td> <select id="topic_l" name="topic_l" class="topic_l" multiple="multiple">'; var idarr = new Array(); var valarr = new Array(); { % for top in dict.tops % } idarr.push('{{top.is}}'); valarr.push('{{pic.ele}}'); { % endfor %
  • Android 中的“重力”和“加速度”传感器有什么区别?(What is the difference between “gravity” and “acceleration” sensors in Android?)
    问题 Android 中的重力和加速度传感器有什么区别? 从我的角度来看,两种情况下的物理价值是相同的。 哪一个测量作用在设备内部单位质量上的力? 添加 问题是:这些传感器测量的是什么物理量? 根据等效原理,加速度和重力是无法区分的,测量两者的唯一方法是通过通常的(但 3d)弹簧天平。 回答1 加速度传感器为您返回施加到设备上的所有力的总和,而重力传感器仅返回重力的影响。 如果您想从加速度中排除重力,您可以使用高通滤波器或仅从加速度传感器值中减去重力传感器值——不确定哪种方法能提供更好的精度。 另一种方法可能是使用 Sensor.TYPE_LINEAR_ACCELERATION,它准确地给出(加速度 - 重力),但是您应该检查它是否在设备上可用。 我发现了一些设备,它们的 ACCELERATION 传感器工作,但 GRAVITY 或 LINEAR_ACCELERATION 传感器没有响应。 回答2 此链接可能会有所帮助:http://www.sensorplatforms.com/which-sensors-in-android-gets-direct-input-what-are-virtual-sensors 以下摘录总结了您的问题的答案: “列表......包括物理传感器和传感器类型,其值来自物理传感器,有时这些被称为虚拟传感器......虚拟传感器类型(重力