【问题标题】:Value from Select not showing up in input value来自 Select 的值未显示在输入值中
【发布时间】:2015-05-24 22:54:19
【问题描述】:

选择选项在一个字段集中,并使用 AJAX 将数据发布到 Mongodb。出于某种原因,除了位置选项之外,所有其他值都将显示在数据库中。

下面是添加它的功能的Jade代码和JS。这是我的第一个项目,不确定我是否只是遗漏了一些明显的东西。

此外,当我将某些输入的类型更改为数字时,它会使所有内容无效,并且它会发布并进入数据库,而没有附加任何数据。有什么想法吗?

// Add User
function addUser(event) {
    event.preventDefault();

    // Super basic validation - increase errorCount variable if any fields are blank
    var errorCount = 0;
    $('#addUser input').each(function(index, val) {
        if($(this).val() === '') { errorCount++; }
    });

    // Check and make sure errorCount's still at zero
    if(errorCount === 0) {

        // If it is, compile all user info into one object
        var newUser = {
            'Date_Entered': $('#addUser fieldset input#inputDate_Entered').val(),
            'First_Name': $('#addUser fieldset input#inputFirst_Name').val(),
            'Last_Name': $('#addUser fieldset input#inputLast_Name').val(),
            'Incident_Date': $('#addUser fieldset input#inputIncident_Date').val(),
            'Resoulution_Date': $('#addUser fieldset input#inputResolution_Date').val(),
            'Location': $('#addUser fieldset input#inputlocation').val(),
            'Damage': $('#addUser fieldset input#inputDamage').val(),
            'Cost': $('#addUser fieldset input#inputCost').val(),
            'Coupon': $('#addUser fieldset input#inputCoupon').val(),
            'Vehicle_Year': $('#addUser fieldset input#inputVehicle_Year').val(),
            'Make': $('#addUser fieldset input#inputMake').val(),
            'Resolution': $('#addUser fieldset input#inputResolution').val(),
            'Model': $('#addUser fieldset input#inputModel').val(),
            'Comments': $('#addUser fieldset input#inputComments').val(),
            'Claim_type': $('#addUser fieldset input#inputClaim_type').val(),
            'ManagersName': $('#addUser fieldset input#inputManagersName').val(),
            'Resolution_Date': $('#addUser fieldset input#inputResolution_Date').val(),
            'CouponQuantity': $('#addUser fieldset input#inputCouponQuantity').val(),
            'CouponType': $('#addUser fieldset input#inputCouponType').val(),
            'Address': $('#addUser fieldset input#inputAddress').val(),
            'City': $('#addUser fieldset input#inputCity').val(),
            'State': $('#addUser fieldset input#inputState').val(),
            'Zip': $('#addUser fieldset input#inputZip').val(),
            'Email': $('#addUser fieldset input#inputEmail').val(),
        }

        // Use AJAX to post the object to our adduser service
        $.ajax({
            type: 'POST',
            data: newUser,
            url: '/users/adduser',
            dataType: 'JSON'
        }).done(function( response ) {

            // Check for successful (blank) response
            if (response.msg === '') {

                // Clear the form inputs
                $('#addUser fieldset input').val('');

                // Update the table
                populateTable();

            }
            else {

                // If something goes wrong, alert the error message that our service returned
                alert('Error: ' + response.msg);

            }
        });
    }
    else {
        // If errorCount is more than 0, error out
        alert('Please fill in all fields');
        return false;
    }
};
        // ADD USER
        h2 Add User
        #addUser
            fieldset
                input#inputDate_Entered(type='date', placeholder='Username')
                input#inputFirst_Name(type='text', placeholder='Email')
                br
                input#inputLast_Name(type='text', placeholder='Full Name')
                input#inputIncident_Date(type='date', placeholder='Age')
                br
                input#inputResolution_Date(type='date', placeholder='Location')
                p
                label
                  select#inputlocation(type='text', tabindex='#{tab_index++}')
                    option 11 North Mchenry
                    option 12 Ceres
                    option 13 Turlock
                    option 14 Briggsmore
                    option 15 Merced
                    option 16 Lodi
                    option 18 Dale Road
                    option 19 Oakdale
                    option 20 Riverbank
                    option 21 Atwater
                    option 22 Plaza
                    option 23 Manteca
                    option 24 South Mchenry
                    option 25 Tracy
                    option 26 University
                    option 27 Whitmore
                br
                input#inputDamage(type='text', placeholder='Damage Type')
                input#inputCost(type='text', placeholder='Cost')
                br
                input#inputCoupon(type='text', placeholder='Coupon')
                input#inputVehicle_Year(type='text', placeholder='Year')
                br
                input#inputMake(type='text', placeholder='Make')
                input#inputResolution(type='text', placeholder='Resolution')
                input#inputModel(type='text', placeholder='Model')
                input#inputComments(type='text', placeholder='Comments')
                br
                input#inputClaim_type(type='text', placeholder='Claim Type')
                input#inputManagersName(type='text', placeholder='Managers Name')
                br
                input#inputResolution_Date(type='text', placeholder='Resolved')
                input#inputCouponQuantity(type='text', placeholder='Coupon Quantity')
                br
                input#inputCouponType(type='text', placeholder='Coupon Type')
                input#inputAddress(type='text', placeholder='Address')
                br
                input#inputCity(type='text', placeholder='City')
                input#inputState(type='text', placeholder='State')
                br
                input#inputZip(type='text', placeholder='Zip')
                input#inputEmail(type='text', placeholder='Email')
                button#btnAddUser Add User

【问题讨论】:

  • 仅供参考,ID 是唯一的,像 $('#addUser fieldset input#inputComments') 这样的东西根本没有意义,应该只是 $('#inputComments')

标签: javascript jquery node.js mongodb


【解决方案1】:

问题其实是奇怪的选择器,这个

$('#addUser fieldset input#inputlocation')

不匹配选择元素,那将是

$('#addUser fieldset select#inputlocation')

但他们都错了,应该只是

$('#inputlocation')

【讨论】:

  • 我想这是以下教程的问题之一,现在完美运行,非常感谢。我现在都改了。
猜你喜欢
  • 2021-02-22
  • 2014-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-03-23
  • 2017-02-28
  • 2020-03-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多