Javascript 使用JS构建表单摘要有困难

Javascript 使用JS构建表单摘要有困难,javascript,jquery,Javascript,Jquery,对于noobish的问题很抱歉,但是,我正在尝试构建一个表单摘要,该摘要将立即使用所有正在使用的字段填充一个div。以下是该领域的一个小样本: 由于某些原因,JS没有像我期望的那样工作,有人能指出我做错了什么吗 例如,我希望它输出:和name:john,数字222除外 我还希望能够点击一个结果删除它,并清除该字段。多谢各位 $(".allS").change(function () { if ($(this).next('.textArea').not(':empty')) //

对于noobish的问题很抱歉,但是,我正在尝试构建一个表单摘要,该摘要将立即使用所有正在使用的字段填充一个div。以下是该领域的一个小样本:

由于某些原因,JS没有像我期望的那样工作,有人能指出我做错了什么吗

例如,我希望它输出:和name:john,数字222除外

我还希望能够点击一个结果删除它,并清除该字段。多谢各位

$(".allS").change(function () {
    if ($(this).next('.textArea').not(':empty'))
    // varible to hold string
    var str = "";
    $("select option:selected").each(function () {
        str += $(this).text() + " ";
    });
    $("#text_here").text(str);
}).change();

$('.textArea').change(function(){

    var $inputs = $('form#form :input[type="text"]'),
        result = "";

    $inputs.each(function(){
        // access the individual input as jQuery object via $(this)
        result += $(this).val()+"<br>";
    });

    // store result in some div
    $('div#text_here').text(result);
}).change();

只要看一眼代码,选择器“formform:input[type=text]”看起来就错了。首先,输入不是伪类。此外,属性匹配不应该有引号

这可能是您想要的,也可能不是您想要的。我认为,从查看您的html:

'form#form input[type=text]'

另外,由于您调用了文本,所以您的无法工作。改为调用html。

代码中有许多错误。我将其简化为一个非常简短的代码,只执行获得所需输出所需的操作。这是我的建议


基本上,它所做的是将更改事件处理程序附加到两个类.alls、.textArea,当事件被触发时,两个输入字段都会测试任何内容。如果该测试通过,则由所有相关值组成一个字符串,并设置div内容。如果测试没有内容失败,str变量包含一个空字符串,div被清除。

这里有很多混乱。第一个if语句的范围是什么?它不应该有卷发吗输入也可能是错误的。。你到底想达到什么目的?谢谢,但这似乎没有任何作用。请将此作为评论而不是答案添加,因为它不回答问题question@Dhiraj这怎么不是答案呢?请advise.OP特别提到输出的外观和名称应为:john,数字222除外。尽管你的建议是正确的,但这并不能完全回答问题。OP说输出应该是这样的。我只是告诉他为什么他的代码不起作用。非常感谢,有没有什么方法可以设置它在点击时清除它的字段?哪个字段?什么点击?假设我输入了一个名字和一个数字,但是现在我看到了这个数字,我想删除它。有没有一种方法可以设置它,当我点击除6543号之外的行时,它可以清除相关字段?还有,有没有任何方法可以将其制作成一个函数,这样它就可以处理一个更大的字段,而不是一次只使用几个选项?为了为部分字符串设置一个点击处理程序,它应该是一个单独的元素,span或li将是一个不错的选择,但这将成为一个更复杂的HTML生成机制。关于让它成为一个函数,我不知道你的意思。。。这是一个函数。。。
$(".allS, .textArea").change(function () {
    var str = '';
    if ($('#name').val().length > 0 && $('#number').val().length > 0)
        var str = $('#nameMod>option:selected').text() + ' name:' + $('#name').val() + ' ' + $('#numberMod>option:selected').text() + ' number ' + $('#number').val();

    $("#text_here").html(str);
});