我对前端并不擅长,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
数据
Variable Value
u'name'[u'test', u'on']
。 name
是db中的一个字段,item5应该与它对应。同样,如果我将文本框名称更改为“item1”,则Get
数据为
Variable Value
u'item1' [u'test', u'on']
我有专门的view
来处理所有无线电输入,它适用于与每个项目对应的单个文本框。但我需要将所有5个单选按钮与上面的1个文本框关联起来。
答案 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 =?然后使用这两个键发送正确的响应。