带javascript的Xforms-确定复选框是否选中

带javascript的Xforms-确定复选框是否选中,javascript,forms,checkbox,xforms,xforms-betterform,Javascript,Forms,Checkbox,Xforms,Xforms Betterform,我正在使用betterFORMS开发一个表单,它允许用户检查哪些字段适用于它们,然后发送数据进行处理。表单是完整的和有效的-我只是想添加一些表单验证,如果没有选中任何复选框,它会阻止用户发送请求 模型和名称空间: <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="2.0" xmlns="http://www.w3.org/2002/06/xhtml2" xmlns:xsl="http://www.w3

我正在使用betterFORMS开发一个表单,它允许用户检查哪些字段适用于它们,然后发送数据进行处理。表单是完整的和有效的-我只是想添加一些表单验证,如果没有选中任何复选框,它会阻止用户发送请求

模型和名称空间:

<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns="http://www.w3.org/2002/06/xhtml2" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xforms="http://www.w3.org/2002/xforms" xmlns:xsd="http://www.w3.org/2001/XMLSchema"
<xsl:output method="xml" />
<xsl:template match="/">
<xforms:model id="documentsChecklist">
    <xforms:instance>   
        <actionform xmlns="">
            <xforms:model id="documentsChecklist">
                <xforms:instance>   
                <actionform xmlns="">
                    <detail>        
                        <other></other>
                        <otherText></otherText>
                    </detail>
                </actionform>
    </xforms:instance>
    <xforms:bind id="other" nodeset="/actionform/detail/other" calculate="choose(. = 'Y', ., 'N')"/>
    <xforms:bind nodeset="/actionform/detail/otherBox" relevant="/actionform/detail/other ='Y'" /> 
</xforms:model> 


在没有任何Javascript指令的情况下,您可以使用xforms:group技巧为特定条件呈现submit控件。大概是这样的:

<xforms:group ref=".[detail/other != '']">
  <xforms:submit .../>
</xforms:group>


-Alain

您希望在每个复选框中查找“已选中”的属性。将警报更改为otherCheckValue.checked,它应为true或false,具体取决于是否选中。我尝试使用checked属性代替.value,但它始终显示false。这听起来似乎可行,但我需要选中多个框。我可以在ref中有多个xpath吗?或者我必须为每个人创建一个组?感谢you@a.hrdie:方括号之间的部分是一个布尔表达式,允许在大括号、and和OR中分组。你可以做一些类似于
ref=“[detail/other!='&&detail/otherCheck value!='']”
@a.hrdie:woops,恐怕我打错了。它不是XPath中的
&&
,而是
。很遗憾我不能编辑我的评论。这很有效!虽然我使用了'or'运算符而不是'and',@grtjn但它完全符合我的要求,不会使事情过于复杂。谢谢各位
<xforms:group ref=".[detail/other != '']">
  <xforms:submit .../>
</xforms:group>