我为我的网站编码了一个选择过滤器:
过滤器
<div class="row">
<select class="event-type-select" id="selection" >
<optgroup label="categorygroup1">
<option value="category1">category1</option>
</optgroup>
<optgroup label="categorygroup2">
<option value="category2">category2n</option>
<option value="category3">category3</option>
</optgroup>
<optgroup label="categorygroup3">
<option value="category4">category4</option>
</optgroup>
</select>
</div>
<div class="row">
<button type="submit" class="btn btn-default"> filter </button>
</div>
</form>
在网站上选择" category1"的"选择窗口"中的任何内容之前。我想那是默认值(?)。
但是,如果我选择了一个类别(并且有效:您可以在"选择窗口"中阅读,例如类别3),然后单击"过滤器" - 按钮网站刷新,但在"选择窗口"中,您再次阅读"类别1"而不是选定的类别,例如"类别3。我想选择不正确。
如何解决此问题,在单击按钮时仍读取所选类别?
我也想在网站的不同部分显示所选选项。
我当前的代码:
<script type='text/javascript'>
var m = document.getElementById("selection").value;}
document.write(m);
</script>
那也不起作用。
希望您能理解我的意思,我的英语很糟糕。很抱歉。
首先,这个问题本质上包含2个问题,不要这样做。
第二,您只是缺少<select>
字段的预选。
选择不起作用
提交表单时,值将发送到服务器。服务器处理值并再次呈现页面。因此,您必须根据所选值调整渲染。可以说,您只需将选定的值传递到视图,因为字符串视图代码看起来像这样:
@model string
...
<select class="event-type-select" id="selection" >
<optgroup label="categorygroup1">
<option value="category1" @if (Model == "category1") {<text>selected</text>}>category1</option>
</optgroup>
<optgroup label="categorygroup2">
<option value="category2" @if (Model == "category2") {<text>selected</text>}>category2n</option>
...
</select>
我也想在网站的不同部分显示所选选项。
然后将选择存储在某个地方(例如db),在渲染不同的部分之前检索选定的值,然后将其输出在不同的部分中。
脚本有错误,您应该使用函数:
function test()
{
var m = document.getElementById("selection").value;
alert(m);
}
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>
<body>
<div class="row">
<select id="selection" class="event-type-select">
<optgroup label="categorygroup1">
<option value="category1">category1</option>
</optgroup>
<optgroup label="categorygroup2">
<option value="category2" selected="selected">category2n</option> <!-- with selected="selected" you set the default -->
<option value="category3">category3</option>
</optgroup>
<optgroup label="categorygroup3">
<option value="category4">category4</option>
</optgroup>
</select>
</div>
<div class="row">
<button type="submit" class="btn btn-default" onclick="test()"> filter </button>
</div>
</body>
</html>