根据字段值的百分比验证字段输入

时间:2014-01-13 22:18:47

标签: javascript

我在Acrobat XI pro中创建了一个表单。我有3个单选按钮,选中后,将一个数字值填充到一个字段中......这是我正在使用的代码:

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

这很好用,但现在我正在尝试将此字段的用户编辑限制为每个单选按钮的每个选项的默认值的最大值的40%。

我已经能够通过简单地创建3个字段来实现这一点 - 每个单选按钮一个,并使用针对实际数字的验证(即,选择单选按钮1以700美元填充文本字段1,所以:

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

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

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

试试这个解决方案!我按照你的意愿添加了一些新的快乐!

此计划的运作方式:

  1. 您点击了一个复选框。
  2. 您为该号码键入一个新值。
  3. 您点击了更新。
  4. 它会通过复选框更新号码。
  5. 检查:

    • 如果输入的数字超过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