检查至少填写了一个textarea

时间:2014-07-29 06:26:23

标签: javascript html

我需要帮助添加一个控件,它检查textareas上的至少一个是否已填充,以便人们不会保存空白表单。所以它应该控制至少在元素上检查和填充,否则它应该给出一个错误并且不会保存。如果有人知道如何这样做,我将非常感激。我正在使用的代码低于(实际上有更多的textareas,但它们只与其他名称相同)。

<tr>
<td valign="top" style='width: 300px;'>Family members help</td>
<%
elemText = xml.getElementFromXPath("//nursing_care/family_help/tekst");
%>
<td valign="top"><input <%=(elemText==null?"checked=\"checked\"":"") %> value="0" onclick="javascript:showText(this);" name="//nursing_care/family_help" type="radio" checked="checked">Valimata
<input <%=(elemText!=null?"checked=\"checked\"":"") %> value="1" onclick="javascript:showText(this);" name="//nursing_care/family_help" type="radio">Määratud</td>
<td>
<textarea style='width: 350px' style="display:<%=(elemText==null?"none":"block") %>" id="//nursing_care/family_help/tekst" name="//nursing_care/family_help/tekst"><%=(elemText!=null?elemText.getText():"") %></textarea>
</td>
<td><input style="display:<%=(elemText==null?"none":"block") %>" type="text" class="txt_left" id="//nursing_care/family_help/date" name="//nursing_care/family_help/date" value="<%=xml.getText("//nursing_care/family_help/date")%>" maxlength="10" size="10" 
onchange="gnlDateValid(this,event); if(event.returnValue != false);" onfocus="gnlGotFocus(getCurrentDate(),this); inputChanged(this);" onkeydown="gnlKeyDown('00.00.0000',this,event);" /></td>
</tr>
</tbody>
<tfoot>
<tr>
<td colspan="3"><input type="submit" class="button_save button" value="Salvesta" />
<input type="button" class="button" value="Sulge" onclick="window.close()" /></td>
</tr>
</tfoot>

这是显示/隐藏textareas的函数(以防万一)

function showText(obj){
    var elements = document.getElementsByName(obj.name);
    var element = getNode(obj.name + "/tekst");
    if (elements[0].checked)
        element.style.display="none";
    else
        element.style.display="block";


         var element = getNode(obj.name + "/date");
            if (elements[0].checked)
                element.style.display="none";
            else
                element.style.display="block";


}

1 个答案:

答案 0 :(得分:1)

这样的事情应该有效。

像这样扩展提交按钮。

<input type="submit" class="button_save button" value="Salvesta" onclick="return submitCheck()"/>

并在您的javascript文件中实现此功能。

function submitCheck(){
    var form = document.forms[0];
    var textareas = form.getElementsByTagName("textarea");

    for(var textarea in textareas){
        if(textarea.value !== ""){
            return true;
        }
    }

    return false;
}

BTW我建议你在使用HTML DOM时使用jQuery; - )