单选按钮首先被禁用,然后再次启用提交
Radio button disabled first, after submit again enabled
我有一个jsp,其中一些单选按钮和文本框取决于下拉选择
这是我的jsp和javascript代码
jsp
<s:form action="crInquiry" name="form">
<s:select name="filterValue" list="headerList"
onchange="OnChange(this.form.filterValue);" />
<s:radio name="filter" list="#{'STATUS_FILTER_START':'START','STATUS_FILTER_END':'STOP'}"
label="Stage"></s:radio>
<s:textfield disabled="true" value="0" name="count" theme="css_xhtml"></s:textfield>
<s:radio name="ascOrder" list="#{'ASC':'ASC','DESC':'DESC'}"></s:radio>
<s:submit value="Filter" onclick="gotopage('FilteredInquiryLog')"></s:submit>
<s:submitvalue="Details" onclick="gotopage('crInquiry')"></s:submit>
</s:form>
javascript
<script type="text/javascript">
function OnChange(dropdown) {
var myindex = dropdown.selectedIndex;
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
if (myindex == 8) {
alert("8");
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = false;
document.form.submit.disabled = false;
}
else if (myindex == 9) {
alert("9");
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = true;
document.form.submit.disabled = false;
}
else{
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
document.form.count.disabled = true;
document.form.submit.disabled = false;
}
}
function gotopage(actionname)
{
document.form.action=actionname+".action";
document.form.submit();
}
</script>
问题是,当我在下拉列表中选择一个项目时,比如元素编号8或9,因此通过javascript,应该禁用这两个项目的单选按钮,并禁用9的文本字段和单选按钮。当我选择一个项目时,它完全禁用了相关的单选按钮或文本字段,但当我提交时,它会显示启用的单选按钮,因为我使用的是同一个jsp。我的javascript有什么问题?
您还应该在页面加载事件中检查下拉值。
像这样的
<script type="text/javascript">
/**
* This function will be called twice - once on onChage event, and once on onLoad event
*/
function OnChange() {
dropdown = document.getElementById('myDropDown');
var myindex = dropdown.selectedIndex;
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
if (myindex == 8) {
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = false;
document.form.submit.disabled = false;
}
else if (myindex == 9) {
document.form.filter[0].disabled = true;
document.form.filter[1].disabled = true;
document.form.count.disabled = true;
document.form.submit.disabled = false;
}
else{
document.form.filter[0].disabled = false;
document.form.filter[1].disabled = false;
document.form.count.disabled = true;
document.form.submit.disabled = false;
}
}
function gotopage(actionname)
{
document.form.action=actionname+".action";
document.form.submit();
}
</script>
<body onload="OnChange()">
<s:form action="crInquiry" name="form">
<s:select name="filterValue" list="headerList" id="myDropDown"
onchange="OnChange();" />
<s:radio name="filter" list="#{'STATUS_FILTER_START':'START','STATUS_FILTER_END':'STOP'}"
label="Stage"></s:radio>
<s:textfield disabled="true" value="0" name="count" theme="css_xhtml"></s:textfield>
<s:radio name="ascOrder" list="#{'ASC':'ASC','DESC':'DESC'}"></s:radio>
<s:submit value="Filter" onclick="gotopage('FilteredInquiryLog')"></s:submit>
<s:submitvalue="Details" onclick="gotopage('crInquiry')"></s:submit>
</s:form>
如果我正确理解您的问题,我认为您的Javascript没有问题
因为在提交之前和提交之后页面数据之间没有通信,这将产生问题。
你可以通过以下方法之一来克服这个问题。1.在body的"OnLoad"事件上调用您的javascript,它将对您起同样的作用
2.将页面的当前状态存储在一些控件(比如文本字段)中,并与页面的其他数据一起提交。在加载时(可能是onLoad或JSP页面的末尾),您可以使用该字段中的值来恢复状态。
我希望这对你有用。
相关文章:
- 附加链接已禁用,然后启用它
- 禁用.click(),然后重新启用它
- 等到所有脚本都完成,然后再启用按钮
- Javascript:需要帮助验证表单的两个方面,然后启用“提交”按钮
- 禁用链接,直到所有动画停止,然后再次启用它们
- 禁用然后在jquery中启用按钮
- jQuery返回所有页面已禁用,然后启用
- 如何暂时禁用提交按钮 3 秒钟(提交时),然后重新启用它
- 单选按钮首先被禁用,然后再次启用提交
- 启用一个输入文本框,然后将其聚焦到jQuery Mobile
- 听众被重复添加,但可以'我不知道怎么做.I'm使用one(),然后使用计时器在每次单击时重新启用它
- CSS按钮:悬停,禁用,然后用javascript重新启用
- 澄清暂时禁用提交按钮数秒,然后重新启用它
- 首先禁用右键单击,然后重新启用右键单击在同一页面使用javascript
- 如何在默认情况下禁用文本框,然后再启用它
- 在AJAX响应后禁用然后重新启用按钮
- 如何在单击按钮后禁用按钮两秒钟,然后再次启用按钮
- 从文本文件中读取,然后决定是要禁用还是启用php中的按钮
- 禁用Div”;按钮“;然后启用
- 如何禁用输入字段,但不禁用单击的输入字段,然后启用所有输入字段