在提交数据之前更改select form元素中的值

时间:2013-12-17 20:32:11

标签: javascript jquery html forms

尝试更改提交时选择的值。系统不接受“$”或“,”因此我正在清理数据。

的jQuery

jQuery("#vfb-53").val( jQuery("#vfb-53").val().replace(/\D/g,'') );
jQuery("#vfb-55").val( jQuery("#vfb-55").val().replace(/\D/g,'') );

Html表格

http://onetrustseniorlending.com/mortgage-loan-calculator

在提交时,该字段变为空白,当我检查网络控制台时,它是空白的。我该如何解决这个问题?

完整代码

$('.visual-form-builder').submit(function(e){

        setCookie('othla',jQuery(".age").val().replace(/\D/g,''),2);
    setCookie('othlv',jQuery(".homeValue").val(),2);
    setCookie('othld',jQuery(".mortgageDebt").val().replace(/\D/g,''),2);

        sim_form$ = $('.crm-form').parent('form');

    sim_form$.attr({'action' : '#'});
    sim_form$.find('.firstname').attr({'name' : 'firstname'});
    sim_form$.find('.lastname').attr({'name' : 'lastname'});
    sim_form$.find('.email').attr({'name' : 'email'});
    sim_form$.find('.phone').attr({'name' : 'phone'});
    sim_form$.find('#vfb-53').attr({'name' : 'cf_1214'});
    sim_form$.find('#vfb-55').attr({'name' : 'cf_1212'});


    sim_form$.prepend('<input type="hidden" name="apipassword" value="0n3trustAPI">');
    sim_form$.prepend('<input type="hidden" name="apimethod" value="create">');
    sim_form$.prepend('<input type="hidden" name="apimodule" value="Leads">');
    sim_form$.prepend('<input type="hidden" name="assigned_user_id" value="2">');
    sim_form$.prepend('<input type="hidden" name="_redirect_url" value="' + document.URL + '#loan-schedule-container' + '">');

    jQuery("#vfb-53").val( jQuery("#vfb-53").val().replace(/\D/g,'') );
    jQuery("#vfb-55").val( jQuery("#vfb-55").val().replace(/\D/g,'') );



        //$('.loan-schedule-container').show();
        //e.preventDefault();
    });

2 个答案:

答案 0 :(得分:1)

您正在尝试更改<select>元素的值,但选择元素只允许选择预定义的选项作为其值,因此通过尝试更改其值来选择不存在的{ {1}} 这可以通过用输入元素替换select元素来解决。

另一种解决方案是将可见选择仅用于用户输入,但隐藏输入包含您在代码中使用的“干净”值。

答案 1 :(得分:0)

我认为问题是尝试将select的值设置为不在选项集中的值将导致未定义或空字符串。