1

我遇到了以下问题:我有一个 XML 文件,我正在使用 XSL 创建一个 HTML 文件。在 XSL 文件中,我有一个 for-each 循环,它创建了几个单选按钮,当然我只需要选中一个按钮,但是index.php在我的项目文件夹中打开文件后,可以检查所有单选按钮。我怎样才能实现,循环后只能选择一个单选按钮?先感谢您!

这是循环内的代码片段:

<div data-role="fieldcontain">
    <fieldset data-role="controlgroup">
        <input type="radio" name="radio-choice" id="radio-choice-3"  />
        <label for="radio-choice-3"><xsl:value-of select="text"/></label>
    </fieldset>
</div>

PS我想它是没有改变的ID,每次循环通过代码时都会创建一个独立的单选按钮,显然该属性controlgroup不会对按钮进行分组。

4

2 回答 2

1

这种转变

<xsl:stylesheet version="1.0"
 xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>
 <xsl:strip-space elements="*"/>

 <xsl:template match="x">
    <div data-role="fieldcontain">
        <fieldset data-role="controlgroup">
            <input type="radio" name="radio-choice" id="radio-choice-{position()}"  />
            <label for="radio-choice-{position()}"><xsl:value-of select="text"/></label>
        </fieldset>
    </div>
 </xsl:template>
</xsl:stylesheet>

当应用于以下 XML 文档时(没有提供!!!):

<t>
 <x>
  <text>Choice one</text>
 </x>
 <x>
  <text>Choice two</text>
 </x>
 <x>
  <text>Choice three</text>
 </x>
</t>

产生想要的正确结果:

<div data-role="fieldcontain">
   <fieldset data-role="controlgroup">
      <input type="radio" name="radio-choice" id="radio-choice-1"/>
      <label for="radio-choice-1">Choice one</label>
   </fieldset>
</div>
<div data-role="fieldcontain">
   <fieldset data-role="controlgroup">
      <input type="radio" name="radio-choice" id="radio-choice-2"/>
      <label for="radio-choice-2">Choice two</label>
   </fieldset>
</div>
<div data-role="fieldcontain">
   <fieldset data-role="controlgroup">
      <input type="radio" name="radio-choice" id="radio-choice-3"/>
      <label for="radio-choice-3">Choice three</label>
   </fieldset>
</div>

并且在浏览器中显示时,任何时候只能有一个单选按钮处于选中状态。

于 2013-02-22T03:36:41.100 回答
0

为了可以只选中一个单选按钮,所有<input type="radio"/>元素必须具有相同的@name属性。例如:

<input type="radio" name="radio-choice" id="radio-choice-3"/>
<input type="radio" name="radio-choice" id="radio-choice-4"/>
于 2013-02-21T21:00:01.070 回答