检测JSP中的下拉列表更改?

时间:2013-08-21 21:26:25

标签: java javascript jsp drop-down-menu attributes

在jsp中,是否有任何属性可以提供下拉列表中的值发生变化的信息?

说例子:

我有下拉国家/地区 - 在页面加载时,它在下拉列表中显示“US”,我将更改为“UK”,然后再次更改为“US”。在这种情况下,我没有做任何改变,所以我没有什么可以保存,但如果我点击保存按钮我的页面正在提交。无论如何都要避免提交此页面。?

1 个答案:

答案 0 :(得分:1)

是的,确实如此。但您必须使用javascript,而不是jsp。示例代码

HTML:

<form class="checked">
    <input type="hidden" id="countrySelectInitial" value="UK" /> <!-- we need this element to store initial value --> 
    <select name="country" class="checkedInput" id="countrySelect">
        <option value="US">US</option>
        <option value="UK" selected>UK</option>
    </select>
    <input type="submit" class="submitButton" disabled />
</form>

JS:

$(".checkedInput").change(function() {
    var newValue = $(this).val();
    var idValue = $(this).attr('id'); // we need id to retrieve initial value. Initial value is stored in element with id <id>Initial
    var oldValue = $("#" + idValue + "Initial").val();
    if(newValue === oldValue) {
            // if value don't changed - disable button. user have no possibility to submit form
        $(this).parents("form.checked").find(".submitButton").attr("disabled", true);
    } else {
            // if value changed - remove "disabled" attribute. User can click button and submit form
        $(this).parents("form".checked).find(".submitButton").removeAttr("disabled");
    }
});