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

Associate multiple radio buttons with a single textbox

我不擅长前端,HTML 是我最想在这里工作的(如果我可以避免在这里参与 js/jquery)。我有一个带有多个单选按钮的文本框 - 例如,item1、item2、...item5。每个 item1, 2... 对应一个字段。例如,当用户在文本框中输入 'abc' 和 selects 'item3' 时,它应该 return 在 item3 字段中具有 'abc' 的所有项目。我可以为每个项目 1、2.. 使用单独的文本框来做到这一点,但我只需要一个与所有单选字段关联的文本框。

这是相关的 html/template 代码。

    <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'。而我 select item5。 Returns MultiValueDictKeyError Get 数据为

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

name 是数据库中的字段之一,item5 应该对应于它。同样,如果我将文本框名称更改为 'item1',则 Get 数据为

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

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

根本不需要 "associate" 带有文本框的按钮。

您缺少的是每个单选按钮本身都需要一个 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'} 或其他。

谢谢大家。我自己从后端解决了它。问题是我试图让请求只发送带有 key=whatever-radio-is-selected 的文本值。我所做的是查看它发送的请求是 name=?和文本框=?然后使用这两个键发送正确的响应。