2014-01-13 83 views
0

我在Acrobat XI专业版中创建了一个表单。我有3个单选按钮,如果选择了该项,填充一个数字值转换成场......这里是我使用此代码:根据字段值的百分比验证字段输入

var v = this.getField("marketRadioButtons").value; 
event.value = (v=="Off") ? "" : v; 

这工作得很好,但我现在想限制该字段的用户编辑为每个单选按钮选择的默认值的最大值的40%。

我已经能够通过简单地创建3场做到这一点 - 每个单选按钮,并使用验证针对实际数量(即选择单选按钮1填充文本字段1以$ 700这样:

event.rc = event.value < 980 if (!event.rc) app.alert ("...")) 

,但更喜欢使用只有一个文本字段,每个单选按钮值。

任何帮助,不胜感激!

回答

1

尝试这种解决方案!我增加了一些新的幸福,做如你所愿!

方式这个程序的工作原理:

  1. 你点击一个复选框。
  2. 您输入该号码的新值。
  3. 您点击更新。
  4. 它通过复选框更新数字。

检查:

  • 如果输入的数字超过1.4 *电流值,警报会触发和值将不会被更新。
  • 如果没有输入号码,则不会发生任何事情。

HTML:

<form id="form1" action=""> 
    <input class='1' type="radio" onclick="display(this)" name="box" value="700"><span class="1">700</span><br> 
    <input class='2' type="radio" onclick="display(this)" name="box" value="1200"><span class="2">1200</span><br> 
    <input class='3' type="radio" onclick="display(this)" name="box" value="1500"><span class="3">1500</span> 
</form><br> 
<form action=""> 
    <input type="text" id="output" value="$"/> 
    <button type="button" onclick="update(this)">Update</button> 
</form> 

的Javascript:

var checkedValue = { 
    'class':0, 
    'value':0, 
} 

display = function(me) { 
    var textbox = document.getElementById('output'); 
    textbox.value = "$" + me.value; 
    checkedValue.value = Number(me.value); 
    checkedValue.class = me.className; 
} 

update = function(me) { 
    var price = me.form.output.value; 
    // if no value entered, newAmount sets to 0 
    var newAmount = Number(price.substring(1, price.length)); 
    if (newAmount) { 
     var maxChange = Math.round(1.4 * checkedValue.value); 
     if (newAmount <= maxChange) { 
      document.getElementsByClassName(checkedValue.class)[1].innerHTML = newAmount; 
     } else { 
      alert('Too high!'); 
     } 
    } 
} 

jsFiddle

+0

嘿,我很欣赏这个建议。这比我上面使用的更简单。因此,一旦用户选择单选按钮,值将出现在文本框中,但我允许用户根据需要编辑值。但是我想把增加到他们的编辑上限为原始字段值的40%。所以他们选择单选按钮#1,显示700美元,他们现在可以增加价值高达980美元,但任何超过980美元的价值导致应用程序警报与消息...预先感谢如果代码存在。不确定是否需要jquery? – user3191987

+0

太棒了,这很有道理!我会尝试'呃出来!那么,普通的javascript是可行的,请试试吧! –

+0

尝试一下!我更新了代码,以便您只能更新每个数字比原始值高40%。 –