将多个单选按钮与单个文本框关联

时间:2015-04-07 14:00:55

标签: html django textbox radio-button

我对前端并不擅长,HTML是我理想的在这里工作(如果我可以避免在这里使用js / jquery)。我有一个带有多个单选按钮的文本框 - 比如item1,item2,... item5。每个item1,2 ......对应一个字段。当用户在文本框中输入“abc”并选择“item3”时,它应返回item3字段中具有“abc”的所有项目。我可以使用单个文本框为每个item1,2 ..但我只需要一个与所有无线电字段相关联的文本框。

这是相关的html /模板代码。

    <form action={% url 'search-fields-radiofields' %} method="get">

        <div align="left">

            <input type="text" name="name" size="54" />​
            <br><br>

            <input type="radio" id="radio1"name="name">
            <label for="radio1">item1</label>

            <input type="radio" id="radio1"name="name">
            <label for="radio2">item2</label>

            <input type="radio" id="radio1"name="name">
            <label for="radio3">item3</label>

            <input type="radio" id="radio1"name="name">
            <label for="radio4">item4</label>

            <input type="radio" id="radio1"name="name">
            <label for="radio5">item5</label>
            <br><br>
            <input id="search_fields" type="submit" value="Search"  size="100"/>        
</div>
</form>

说,搜索词是'test'。我选择item5。返回带有Get数据

的MultiValueDictKeyError
Variable    Value
u'name'[u'test', u'on']

name是db中的一个字段,item5应该与它对应。同样,如果我将文本框名称更改为“item1”,则Get数据为

Variable    Value
u'item1' [u'test', u'on']

我有专门的view来处理所有无线电输入,它适用于与每个项目对应的单个文本框。但我需要将所有5个单选按钮与上面的1个文本框关联起来。

2 个答案:

答案 0 :(得分:0)

根本不需要将按钮与文本框“关联”。

您缺少的是每个单选按钮本身都需要value。一旦你完成了,但给了他们一个不同的名称,你就已经完成了。

        <input type="text" name="name" size="54" />​

        <input type="radio" id="radio1" name="field" value="item1">
        <label for="radio1">item1</label>

        <input type="radio" id="radio1" name="field" value="item2">
        <label for="radio2">item2</label>

...等

现在request.GET将为{'name': 'test', 'field': 'item1'}或其他任何内容。

答案 1 :(得分:0)

谢谢大家。我自己从后端解决了这个问题。问题是我试图通过key = whatever-radio-is-selected来获取仅发送文本值的请求。我做了什么看了它发送的请求名称=?和textbox =?然后使用这两个键发送正确的响应。