<select>过滤器

时间:2017-12-05 10:00:18

标签: c# html razor

我为我的网站编写了一个选择过滤器:              过滤         &lt; div class =&#34; row&#34;&gt;                 &lt; select class =&#34; event-type-select&#34; ID =&#34;选择&#34; &GT;                     &lt; optgroup label =&#34; categorygroup1&#34;&gt;                         &lt; option value =&#34; category1&#34;&gt; category1&lt; / option&gt;                     &LT; / OPTGROUP&GT;                     &lt; optgroup label =&#34; categorygroup2&#34;&gt;                         &lt; option value =&#34; category2&#34;&gt; category2n&lt; / option&gt;                         &lt; option value =&#34; category3&#34;&gt; category3&lt; / option&gt;                     &LT; / OPTGROUP&GT;                     &lt; optgroup label =&#34; categorygroup3&#34;&gt;                         &lt; option value =&#34; category4&#34;&gt; category4&lt; / option&gt;                     &LT; / OPTGROUP&GT;                 &LT; /选择&GT;         &LT; / DIV&GT;         &lt; div class =&#34; row&#34;&gt;             &lt; button type =&#34;提交&#34; class =&#34; btn btn-default&#34;&gt;过滤器&lt; / button&gt;         &LT; / DIV&GT;     &LT; /形式&GT; 在选择&#34;选择窗口&#34;之前选择任何内容在您阅读的网站上&#34; category1&#34;。我猜那是默认的(?)。 但如果我选择了一个类别(并且有效:你可以阅读&#34;选择窗口&#34;例如类别3)然后点击&#34;过滤器&#34; - 按钮网站刷新但是在&#34;选择窗口&#34;你再次阅读&#34; category1&#34;而不是选定的类别,例如&#34; category3&#34;。我猜选择不对。 如何解决这个问题,单击按钮时仍然可以阅读所选类别? 我还想在网站的不同部分显示所选的选项。 我目前的代码:     &lt; script type =&#39; text / javascript&#39;&gt;         var m = document.getElementById(&#34; selection&#34;)。value;}         文件撰写(米);     &LT; /脚本&GT; 这也是行不通的。 我希望你能理解我的意思,我的英语非常糟糕。对不起

2 个答案:

答案 0 :(得分:0)

脚本有错误,您应该使用函数:

&#13;
&#13;
            function test()
            {
                var m = document.getElementById("selection").value;
                alert(m);
            }
&#13;
<!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>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

首先,这个问题基本上包含两个问题,但不要这样做。

其次,您只是错过了<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),在呈现不同部分之前检索所选值,并将其输出到不同部分中。