Могу ли я загрузить максимальное значение атрибута range в CFINPUT, используя вызов AJAX?

У меня есть 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})" />

В выше CFFORMЯ в основном хочу установить minValue диапазона в "1" и maxValue диапазона в значение cfc:Data.getMaxQty({itemId}),

Это возможно? Как мне это сделать?

1 ответ

Решение

Быстрый ответ - "Нет". Но есть очень легкий обходной путь. Просто загрузите значение, которое вы хотите быть максимальным в 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})" />
Другие вопросы по тегам