代码之家  ›  专栏  ›  技术社区  ›  Eric Belair

我可以使用和AJAX调用加载CFINPUT中range属性的最大值吗?

  •  1
  • Eric Belair  · 技术社区  · 16 年前

    CFINPUT 在一个 CFFORM . 我想在不发布页面的情况下动态设置范围。我在整个页面中有几个AJAX调用,用于动态加载表单字段:

    <cfselect id="this" name="this" bind="cfc:Data.getThis()" bindonload="true" />
    
    <cfselect id="that" name="that" bind="cfc:Data.getThat({p1})" />
    
    <cfselect id="theOther" name="theOther" bind="cfc:Data.getTheOther({p1}, {p2})" />
    
    <cfdiv 
        id="maxQty" 
        bind="cfc:Data.getMaxQty({itemId})" />
    
    <cfinput 
        type="text" 
        id="qty" 
        name="qty" />
    
    <cfdiv 
        id="itemId" 
        bind="cfc:Data.getItemId({this}, {that}, {theOther})" />
    

    在上面 C窗体 ,我基本上想把range的minValue设置为“1”,把range的maxValue设置为 cfc:Data.getMaxQty({itemId})

    1 回复  |  直到 16 年前
        1
  •  1
  •   Eric Belair    16 年前

    答案很快就是“不”。但是有一个非常简单的解决方法。只需将要成为最大值的值加载到 CFDIV CFINPUT 使用绑定隐藏字段,然后在提交表单时验证最小/最大值的JavaScript函数中访问该值:

    <script type="text/javascript">
    <!--
    
    function validateForm() {
        var maxQty = document.getElementById("maxQty").innerHTML;
    
        if (document.myForm.add_item_1.value < 1 || document.myForm.add_item_1.value > maxQty) {
            alert("Quantity must be an integer value between 1 and " + maxQty);
    
            return false;
        }
    
        return true;
    }
    
    //-->
    </script>
    
    <cfform name="myForm" method="post" action="myFormAction.csm" onsubmit="return validateForm();">
    
    <cfdiv 
        id="maxQty" 
        bind="cfc:Data.getMaxQty({itemId})" />