选择单选按钮后刷新页面,但保持单选按钮的值
Refresh page after selecting radio button but keep the radio button value
我正在创建一个页面,用户可以通过单击单选按钮来选择一个选项。我希望页面刷新保持所选的单选按钮值。这些是我的代码。
HTML<div style="float:right">
<label><input type="radio" name="colorRadio" value="f1">Option 1</label><br>
<label><input type="radio" name="colorRadio" value="f2">Option 2</label><br>
<label><input type="radio" name="colorRadio" value="f3">Option 3</label><br>
</div>
<div style="float:left;" class="f1 box">This is option 1</div>
<div style="float:left;" class="f2 box">This is option 2</div>
<div style="float:left;" class="f3 box">This is option 3</div>
JAVASCRIPT $('input[type="radio"]').click(function(){
if($(this).attr("value")=="f1"){
$(".box").hide();
$(".f1").show();
}
if($(this).attr("value")=="f2"){
$(".box").hide();
$(".f2").show();
}
if($(this).attr("value")=="f3"){
$(".box").hide();
$(".f3").show();
}
});
CSS .box{
padding: 20px;
display: none;
margin-top: 20px;
border: 1px solid #000;
}
是否有一种方法来重新加载只是div而不是刷新整个页面?
如果这是一个HTML文件,则使用localStorage
存储value
属性单击的<input>
,然后在加载页面时,运行右侧<input>
元素的onclick
事件。
$(function() {
$("input[type='"radio'"]").click(function(){
[...]
//localStorage:
localStorage.setItem("option", value);
});
//localStorage:
var itemValue = localStorage.getItem("option");
if (itemValue !== null) {
$("input[value='""+itemValue+"'"]").click();
}
});
如果在服务器上运行,则使用document.cookie
存储value
属性单击的<input>
,当向客户端服务器端发送数据时,选中正确的<input>
并显示正确的框。
$(function() {
$("input[type='"radio'"]").click(function(){
[...]
//Cookies:
document.cookie="option="+value;
});
//Cookies:
/*Load the page with the correct input checked based off cookies*/
});
这里是小提琴(不幸的是,cookie不工作在这里):http://jsfiddle.net/NobleMushtak/vTT7J/
添加autocomplete='on'
属性到您的输入字段
您可以在选择单选按钮时设置cookie,然后刷新页面。当页面再次加载时,读取cookie值并根据cookie值选择单选按钮
通过$("#divWhichExcludesRadiobutton").load("current/url");
加载或在head标签中添加下一个脚本
var myVal;
$("body").load("current/url", function () { $('input[type="radio"]').val(myVal) });
$('input[type="radio"]').on('change',function(){
myVal = $(this).attr("value");
if($(this).attr("value")=="f1"){
$(".box").hide();
$(".f1").show();
}
if($(this).attr("value")=="f2"){
$(".box").hide();
$(".f2").show();
}
if($(this).attr("value")=="f3"){
$(".box").hide();
$(".f3").show();
}
});
这是我对你的问题的解决方案:小提琴
我使用localStorage来保存哪个radioButton被退回到cookie检查:
function saveData(key,value) {
localStorage.setItem(key,value) || (document.cookie = key + "=" + value);
}
在页面加载时,从已使用的存储中加载数据,以检查归属按钮并激活相应的框。
加上我简化了你设置活动框的功能。
由于你的页面将被刷新,新的组件将被创建,你不能通过使用javascript直接持久化它们的值,值需要存储在某个地方,你可以得到你的值,并在你的新单选按钮元素重置值。
换句话说,你想在web应用程序中保存对象的状态。为了维护对象的状态,我们有许多方法,因为我们经常使用请求范围,查询字符串或会话。由于您的要求是保存值只到下一个请求(下一页刷新),所以为了维护下一个页面加载的值,您可以使用请求范围或您需要将该值添加到您的查询字符串,在这两种方式中,您可以从请求范围或查询字符串中获得该值,并将该值应用于您的单选按钮。
如何在JavaScript页面之间传递数据?
将表单数据提交给服务器端脚本,然后该脚本输出包含该数据的新JavaScript页面。这是简单和可靠的,并在所有的浏览器工作,但需要支持服务器端脚本的某种类型(PHP, ASP等)。
将URL中的表单样式数据传递给新的JavaScript页面,而不使用任何服务器端脚本。这适用于所有浏览器,但支持的数据量有限。这是解决问题的传统方法,无需服务器端脚本。
通过window.name属性传递数据。虽然这不是window.name的预期目的,但它似乎工作得相当好,并且比第二种方法支持更大的数据量。它可以在Safari、Firefox和Internet Explorer中运行。那么为什么不使用它呢?因为它是高度不安全的!如果用户点击了一个不属于你的网站的链接,其他网站仍然可以看到存储在window.name中的数据,这从来都不是一个安全的、特定于网站的属性。因此,我强烈反对使用这种方法。
对于刷新页面,可以在jquery中使用location.reload()。为了存储所单击的单选按钮值,如果不使用server,则需要将数据存储在本地存储中。
您的JSP看起来像这样
<input type="radio" id="aa" name="Options" value="val1">radio 1
<input type="radio" id="bb" name="Options" value="val2"> radio 2
<input type="radio" id="cc" name="Options" value="val3"> radio 3
jQuery $(function() {
$("input[type='"radio'"]").click(function(){
var thisElem = $(this);
var value = thisElem.val();
alert('value'+value);
localStorage.setItem("option", value);
});
var itemValue = localStorage.getItem("option");
if (itemValue !== null) {
$("input[value='""+itemValue+"'"]").click();
}
});
加载页面时,单选按钮将不会重置,因为您正在使用本地存储来检索。
这将解决这个问题
' class="fieldLabel" valign="middle">' key="label.portin. "国家"/>:
<nested:present name="VoyagerSession" property="accountSummaryInfo.mspSummaryInfo.countryList">
<html:select tabindex="7" size="1" property="country" styleClass="field" onchange= "Javascript:getstateList();javascript:selectPortInType();">
<bean:define id="countrylist" name="VoyagerSession" property="accountSummaryInfo.mspSummaryInfo.countryList" type="java.util.List" />
<html:options collection="countrylist" property="key" labelProperty="value" />
</html:select>
</nested:present>
</td>
<td width="20%" align="<%= session.getAttribute("pageRight")%>" class="fieldLabel" valign="middle"><bean:message bundle='<%=session.getAttribute("pageBundle").toString()%>' key="label.portin.state" />: </td>
<td width="30%" valign="middle" class="field">
<html:select size="1" property="state" styleClass="field">
<bean:define id="statelist" name="VoyagerSession" property="accountSummaryInfo.mspSummaryInfo.stateList" type="java.util.List" />
<html:options collection="statelist" property="key" labelProperty="value" />
</html:select>
</td>
</tr>
- 多个单选按钮组相互干扰
- 是否可以禁用jquery中的单个单选按钮
- Javascript:无法获取变量中的单选按钮值
- 通过ajax到php文件获取单选按钮值
- 单选按钮单击可刷新/更改网站的小区域
- 触发单选按钮单击,并在页面刷新时记住选择
- 如何在刷新jsp页面后保持单选按钮选中点击单选按钮
- 提交单选按钮值而不刷新页面
- 如何在选择其他单选按钮后将其灰显,直到刷新
- 如何在页面刷新后保留输入单选按钮的状态
- 单选按钮不刷新数据
- 即使在页面刷新后,仍将checked单选按钮保持或设置为checked
- 在页面刷新时保留单选按钮值
- 选择单选按钮后刷新页面,但保持单选按钮的值
- 角状态.去不刷新页面,因此不显示所选的单选按钮
- ASP中单选按钮刷新问题.净MVC
- jQuery缓存刷新复选框单选按钮状态
- 如何在页面刷新后从JS中的多个单选按钮中检索localStorage中的数据
- 如何在jQuery Mobile中刷新单选按钮的样式和布局
- UI中的单选按钮选择不刷新