使用Javascript优雅地将字段值传递到变量和隐藏输入

时间:2011-05-02 01:34:06

标签: javascript html forms

我想验证使用document.write提交的信息,并将表单值传递到隐藏表单字段(如果有必要)以进行最终提交。使用在线脚本我有字段值包含

if (splitArray[i] == 'textname')    
document.formname.textname.value = unescape(splitArray[i+1]);

在某种句子结构中打印页面上的值的最简洁的方法是什么,还准备好提交的值?

...
if (splitArray[i] == 'textname')  
var x = unescape(splitArray[i+1]);
}

function writeIt(y) { document.write(y); }

在页面confirm.html上打印:

Hello <script>writeIt(x);</script>, welcome to Wonderland.

传递确认页面:

<input type="hidden" name="textname" value="<script>writeIt(x);</script>">
...
<input type="submit" value="Submit"></form>

是否将值传递到必要的<input>字段中,或者我可以依赖document.formname.textname.value来包含表单值(而不必实际写出HTML(表单<input>)提交按钮?

1 个答案:

答案 0 :(得分:0)

  

我想验证使用document.write提交的信息

document.write没有“提交”信息,它写入当前文档。如果文档已关闭,则会先调用document.open,这将删除所有内容。

  

并将表单值传递给hidden   表格字段(如果有必要)   最终提交。使用在线   脚本我有字段值   如此包含

if (splitArray[i] == 'textname')    
document.formname.textname.value = unescape(splitArray[i+1]);
     

什么是   最清洁的方式来打印价值   在页面上有点句子   结构,并准备好了价值观   提交?

要在页面中显示文本,请将其添加为现有元素或新元素的textNode:

var textNode = document.createTextNode('foo bar');
<someElement>.appendChild(textNode);

可以在一行中完成:

<someElement>.appendChild(document.createTextNode('foo bar'));

或者您可以设置元素的innerHTML属性:

<someElement>.innerHTML = 'foo bar';

对值使用隐藏元素似乎很奇怪,然后在其他地方显示它们。为什么不使用只读表单控件?然后显示您的文本,它与用户修改一样安全,因为隐藏元素已经准备好提交了。