Javascript 将表单转换为纯文本
我有一个根据用户选择生成表单的页面。我想知道是否有办法将表单转换为纯文本?表单有4个字段,每个字段都有一个标签。我希望将所有标签/字段打印给用户,如下所示:Javascript 将表单转换为纯文本,javascript,html,Javascript,Html,我有一个根据用户选择生成表单的页面。我想知道是否有办法将表单转换为纯文本?表单有4个字段,每个字段都有一个标签。我希望将所有标签/字段打印给用户,如下所示: label1 field1 label2 field2 label3 field3 label4 field4 有办法吗?您可以使用 var label1 = getElementById("id").name 创建一个格式化为要向用户显示的字符串,并使用 document.write(string); 如果你不介意一个额外的文件,用
label1 field1
label2 field2
label3 field3
label4 field4
有办法吗?您可以使用
var label1 = getElementById("id").name
创建一个格式化为要向用户显示的字符串,并使用
document.write(string);
如果你不介意一个额外的文件,用PHP 您需要创建一个小的php文件,以响应所有表单信息,如下所示:
<?php
$label1 = "label1";
$label2 = "label2"; //Set all labels here
$label3 = "label3";
$label4 = "label4";
echo $label1 . " " . $_POST['field1'] . "<br />"; //Change to get depending on your method.
echo $label2 . " " . $_POST['field2'] . "<br />";
echo $label3 . " " . $_POST['field3'] . "<br />";
echo $label4 . " " . $_POST['field4'] . "<br />";
echo "Done.";
?>
把它放在自己的档案里。将表单的action属性设置为该文件,它将打印出所有数据。您可以使用jQuery生成基本输出,例如:
var texts = [];
$("form label").each(function() {
var oLabel = $(this);
var oInput = oLabel.next();
texts.push(oLabel.text() + " - " + oInput.val());
});
var plainText = texts.join("<br />");
$("#Output").html(plainText);
var text=[];
$(“表单标签”)。每个(函数(){
var oLabel=$(本);
var oInput=oLabel.next();
text.push(oLabel.text()+“-”+oInput.val());
});
var plainText=text.join(“
”);
$(“#输出”).html(纯文本);
这将迭代所有表单标签,然后获取每个标签的下一个元素,即输入
.一种没有JavaSCript库的方法是:
var form = document.getElementsByTagName('form')[0];
form.onsubmit = function(){
var labels = document.getElementsByTagName('label');
if (!document.getElementById('container')){
var container = document.createElement('ol');
container.id = 'container';
}
else {
var container = document.getElementById('container');
while (container.firstChild){
container.removeChild(container.firstChild);
}
}
for (var i=0,len=labels.length; i<len; i++){
if(document.getElementById(labels[i].getAttribute('for'))){
var newLi = document.createElement('li');
var iText = document.createElement('span');
newLi.innerHTML = labels[i].innerHTML;
iText.innerHTML = document.getElementById(labels[i].getAttribute('for')).value;
newLi.appendChild(iText);
container.appendChild(newLi);
}
}
document.getElementsByTagName('body')[0].appendChild(container);
return false;
};
var form=document.getElementsByTagName('form')[0];
form.onsubmit=函数(){
var labels=document.getElementsByTagName('label');
如果(!document.getElementById('container')){
var container=document.createElement('ol');
container.id='container';
}
否则{
var container=document.getElementById('container');
while(container.firstChild){
container.removeChild(container.firstChild);
}
}
对于(var i=0,len=labels.length;iYou必须为此使用客户端脚本,最好是jQuery。这与您的情况有关吗?是的,有。您使用的是什么标记?您尝试了什么?您做了什么研究?您是否为我们提供了一个可用的脚本?@Shadow Wizard:是的,这是可以接受的。@David Thomas:我搜索过谷歌但是找不到任何东西。你能解释一下这背后的原因吗?你会用文本结果做什么?你会把它显示出来吗?它应该转换成非表单HTML还是只显示实际文本?只显示文本当然会在浏览器中无效显示…如果我只有一个表单,那就太好了。但是我有大约20个。所以我不会为每个文件创建php文件!你不必这样做。如果它们都是这样,你可以使用同一个文件。如果它们不是这样,你仍然可以使用一个文件,但这将需要更长的时间来创建。这正是我想要的。但是我需要链接和JS文件才能使用JQuery吗?@sikas是的,你需要引用一个文件,即最新版本可以找到st版本-将文件本地复制到您自己的服务器,或者直接链接到该文件,例如,
托管版本的更可靠来源(因为我不太确定jQuery对使用托管版本的立场)是的。@Purmou不同意这一点。。IMO jQuery和Google一样稳定,即使Google早已不在了,它也会继续存在。即使有人最终会取代他们,很难相信他们会停止托管自己的代码。@ShadowWizard:也许是这样,但我提到Google的唯一原因是因为我不确定jQuery对u唱他们的主持版本。你知道关于这方面的官方声明吗?