如何增加此javascript中的参数数量?

如何增加此javascript中的参数数量?,javascript,textarea,radio-button,Javascript,Textarea,Radio Button,声明:我不确定这是否是一个参数。请开导 我有一份医疗问卷表,几乎有19个是和否单选按钮。每个问题的单选按钮都必须有一个唯一的输入名称,才能正常工作。我设法找到一个合适的代码来切换一个文本区域,如果选择了yes单选按钮,但是,它只能在一个输入名称中工作,还有18个需要它工作 我的主要问题是: function displayTextBox() { var objElement = document.getElementById('addmed'); addm

声明:我不确定这是否是一个参数。请开导

我有一份医疗问卷表,几乎有19个是和否单选按钮。每个问题的单选按钮都必须有一个唯一的输入名称,才能正常工作。我设法找到一个合适的代码来切换一个文本区域,如果选择了yes单选按钮,但是,它只能在一个输入名称中工作,还有18个需要它工作

我的主要问题是:

function displayTextBox()
    {
        var objElement = document.getElementById('addmed');
        addmed.style.display = 'block';
        addmed.style.visibility = 'visible';
    }

    function hideTextBox()
    {
        var objElement = document.getElementById('addmed');
        addmed.style.display = 'none';
        addmed.style.visibility = 'hidden';
    }

    function validate()
    {
        var arrElements = document.getElementsByName('medq');
        var objElement;
        var boolContinue = false;
        var objaddmedtext;

        for(var i=0, _length=arrElements.length; i<_length; i++)
        {
            objElement = arrElements[i];

            if(objElement.checked)
            {
                if(objElement.id == 'yes')
                {
                    objaddmedtext = document.getElementById('addmedtext');

                    if(strTrim(objaddmedtext.value).length>0)
                    {
                        boolContinue = true;
                        break;
                    }
                }
                else
                {
                    boolContinue = true;
                    break;
                }
            }
        }

        if(boolContinue)
        {
            alert('Continue, user completed the information.')
        }
        else
        {
            alert('Ask user to complete the data.')
        }
    }

    /**
     * Removes all white space characters from the string.
     * 
     * @param: {String} String to trim.
     * 
     * @return {String} Trimed string.
    */
    function strTrim(strTrim) 
    {
        return strTrim.replace(/^\s+|\s+$/g, '');
    }
函数显示文本框()
{
var objeelement=document.getElementById('addmed');
addmed.style.display='block';
addmed.style.visibility='visible';
}
函数hideTextBox()
{
var objeelement=document.getElementById('addmed');
addmed.style.display='none';
addmed.style.visibility='隐藏';
}
函数验证()
{
var arrElements=document.getElementsByName('medq');
变量对象;
var boolContinue=false;
var objaddmedtext;
对于(变量i=0,_length=arrElements.length;i0)
{
boolContinue=true;
打破
}
}
其他的
{
boolContinue=true;
打破
}
}
}
如果(布尔继续)
{
警报('继续,用户已完成信息')
}
其他的
{
警报('要求用户完成数据')
}
}
/**
*从字符串中删除所有空白字符。
* 
*@param:{String}要修剪的字符串。
* 
*@return{String}修剪过的字符串。
*/
函数strTrim(strTrim)
{
返回strTrim.replace(/^\s+|\s+$/g');
}
看看这个javascript,一个文本区域

<div id="addmed" style="display:none;visibility:hidden; margin-left:10px; width:110px;">
        <textarea id="addmedtext" cols="60" rows="6" placeholder="Please give details with dates"></textarea>
</div> 

仅当选择“是”单选按钮时才会显示

<tr>
<td width="33">1.</td>
<td width="491">Heart or circulatory problems including: high blood pressure, heart attack, angina, heart murmur, heart failure, palpitations, circulatory problemseg. whitefinger, blocked arteries, stroke aneurysm.</td>
<td width="68"><input name="medq" id="yes" type="radio" value="yes" onclick="displayTextBox()"/><label for="yes"> Yes </label></td>
<td width="78"><input name="medq" id="no" type="radio" value="no" onclick="hideTextBox()"/><label for="no"> No </label></td>

1.
心脏或循环系统问题包括:高血压、心脏病发作、心绞痛、心脏杂音、心力衰竭、心悸、循环系统问题。白指,动脉阻塞,中风动脉瘤。
对
不

然而,这仅仅是一个问题……我还有18个关于
name=“medq 1至18”
的问题


你知道如何编辑javascript来添加参数吗?

首先,你需要在每个单选按钮上都有唯一的ID。但您需要在每对“是/否”按钮上使用相同的名称来处理这对按钮中选定的一个。所以你可以

<input type="radio" name="foo" id="foo_y" value="yes" /><label for="foo_y">Yes</label>
<input type="radio" name="foo" id="foo_n" value="no" /><label for="foo_y">Yes</label>
<textarea id="foo_text" name="foo_text"><textarea>
现在它是一个泛型函数。对“隐藏”功能执行相同的操作

最后,您可以更新validate函数来循环表单输入字段数组,而不是只查看一个字段

  • var arrElements=document.getElementsByTagName(“输入”)
    
  • 在循环内部:
    if((objeelement.type==“radio”)&&(objeelement.checked)){
  • 不要使用
    if(objeelement.id='yes')
    ,检查当前字段的值:
    if(objeelement.value='yes')
  • 最后,您可以从相关的文本区域获取文本:
    objTextArea=document.getElementByName(objeelement.name+“_text”);

  • 因此,您只是将每个现有函数都设置为通用函数,并查找每个字段的元数据,而不是尝试为每个字段编写代码。

    有点旁白:如果您正在进行可能影响人们健康的医疗问卷调查,我强烈敦促您执行极其严格的测试,以确保您的de是正确的(即,对每个问题进行单元测试是和否,例如,由于错误,某个问题总是被标记为是或总是被标记为否)。首先,一个“是和否”单选按钮被称为复选框。这就是它们的用途。其次,您需要从HTML中获取内联大小和样式数据。我还建议使用提供某种选择器的库,例如(但不限于)jQuery,用于获取和隐藏消息。最后,如果您不使用选择器,请确保getElementById可用。有人能解释一下
    f.style.display='block';f.style.visibility='visible';
    的意思吗?嗨…很抱歉,我只是想了解单击的字段是什么意思?对于要clic的字段,您指的是值你是指19个字段吗?在实施更改后…我意识到,如果问题1我单击“否”,问题2我单击“是”,文本字段将显示出来,如果问题3我单击“否”,文本字段将再次隐藏…你知道如何使至少1为“是”,则文本框保留在那里吗?每对单选按钮是否都有关联的文本区域?第我是这样读的。如果所有单选按钮只有一个文本区,那么如果选择了任何一个“是”单选按钮,则单个文本区显示?传统上,“e”表示“事件”,如单击或更改。这里是“f”表示作为单击的输入字段的实际DOM对象。这使您不必通过ID或名称专门引用特定字段。
    function displayTextBox( f ) { // f is the field that was clicked
        f.style.display = 'block';
        f.style.visibility = 'visible';
    }