位于带有 onChange 的文本字段后面的单选按钮将丢失所选值
Radio button positioned after text field with onChange loses the value selected
我有以下一段代码,它显示了一个文本字段,其中包含一个 onChange 事件,后跟一个单选按钮。当用户在文本字段中输入值,然后单击单选按钮字段时,他们在单选按钮中选择的值将丢失。
为了解决这个问题,我们添加了一个按钮,用户在单选按钮上选择之前必须单击该按钮。
这不是一个很好的解决方法,我想摆脱它。我如何使这项工作,以便当他们退出文本字段并单击以下单选按钮时,他们在单选按钮中选择的值保持选中状态?
<xp:inputText id="shortAnswerCurrency" styleClass="short-answer form-control" value="#{compositeData.dataSource[compositeData.dataBinding]}" disableClientSideValidation="true">
<xp:this.rendered><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValueString("qType") == "Currency"}]]></xp:this.rendered>
<xp:this.required><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValueString("qRequire") == "Yes";}]]></xp:this.required>
<xp:this.validators>
<xp:validateRequired message="This question is required. Please enter a response."></xp:validateRequired>
</xp:this.validators>
<xp:this.converter>
<xp:convertNumber type="currency" integerOnly="false" currencySymbol="$" currencyCode="USD"></xp:convertNumber>
</xp:this.converter>
<xp:this.attrs>
<xp:attr name="placeholder" value="$"></xp:attr>
</xp:this.attrs>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="myQuestions" disableValidators="true" onComplete="$('.datePickerDiv input').datepicker({format: 'MM dd, yyyy'});">
<xp:this.action><![CDATA[#{javascript:viewScope.put(compositeData.QuestionDoc.getItemValueString("qMapping"), getComponent("shortAnswerCurrency").value);}]]></xp:this.action>
</xp:eventHandler>
</xp:inputText>
<xp:button id="currencyButton" value="Enter" styleClass="btn btn-md btn-default">
<xp:this.rendered><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValueString("qType") == "Currency"}]]></xp:this.rendered>
<xp:eventHandler event="onclick" submit="true" refreshMode="partial" refreshId="myQuestions" disableValidators="true">
<xp:this.action><![CDATA[#{javascript:viewScope.put(compositeData.QuestionDoc.getItemValueString("qMapping"), getComponent("shortAnswerCurrency").value);}]]></xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:radioGroup id="radioValue" value="#{compositeData.dataSource[compositeData.dataBinding]}" styleClass="long-radiolist" disableClientSideValidation="true">
<xp:this.rendered><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValueString("qType") == "Radio"}]]></xp:this.rendered>
<xp:this.required><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValueString("qRequire") == "Yes";}]]></xp:this.required>
<xp:this.validators>
<xp:validateRequired message="This question is required. Please select a response."></xp:validateRequired>
</xp:this.validators>
<xp:eventHandler event="onchange" submit="true" refreshMode="partial" refreshId="myQuestions" disableValidators="true" onComplete="$('.datePickerDiv input').datepicker({format: 'MM dd, yyyy'});">
<xp:this.action><![CDATA[#{javascript:viewScope.put(compositeData.QuestionDoc.getItemValueString("qMapping"), getComponent("radioValue").value);}]]></xp:this.action>
</xp:eventHandler>
<xp:selectItems>
<xp:this.value><![CDATA[#{javascript:compositeData.QuestionDoc.getItemValue("qValues")}]]></xp:this.value>
</xp:selectItems>
</xp:radioGroup>
在单选按钮中,您在事件处理程序中提交=true。getComponent("radioValue").value 可能是错误的,你需要 getComponent("radioValue").getSubmittedValue()
我有
相关文章:
- 使用带角度的单选按钮更新不同的模型
- 如果使用jQuery验证器插件找到单选按钮,则将不同的addMethod应用于字段
- jquery:$(input).keydown无法在单选按钮上设置处理程序,同样的代码也适用于文本
- 使用 JavaScript 将 CSS 应用于动态生成的单选按钮
- JavaScript - 复选框的作用类似于单选按钮
- 带单选按钮的消防链接
- 单选按钮(带点击事件)未在火狐中传递参数
- 如何使更改事件适用于使用 replaceWith 添加的 html 的单选按钮
- Javascript getElementById()适用于文本框,但不适用于;不能使用单选按钮或下拉选择器
- 单击输入字段将背景颜色应用于父项,并取消选择初始选择的单选按钮
- 按钮的行为类似于单选按钮
- 复选框的行为类似于具有不同名称的单选按钮
- 使锚点标记的行为类似于复选框和单选按钮
- 带操作和存储功能的单选按钮
- 带Knockout.js的单选按钮列表
- 单选按钮上的无提示验证被忽略,而它只适用于相同表单html中的文本字段
- JQuery:如何将一个类应用于表中行内的特定数据onclick或单选按钮
- 将样式应用于选中的单选按钮'
- 带功能的引导单选按钮
- 选择依赖于单选按钮