如何更改输入的值?

时间:2013-04-14 11:36:05

标签: javascript jquery

我有一个动态添加输入,文本和选择元素的表单。

表单的ID为#user-form,我需要更改此表单中显示的input/select/text元素的值。

其中一个表单项在页面加载时隐藏,这就是我在select中包含input:hidden的原因。

一个元素的HTML输出示例如下所示:

<input id="slider-coll" class="enq-form-input form-text" type="text" maxlength="128" size="10" value="" name="slider_coll">

我使用jQuery的当前代码如下所示:

sliderForm.find('#user-form').find('.enq-form-input, .enq-form-select, input:hidden').change(function() {
    inputValue = $(this).val();
    console.log(inputValue);
    $(this).val(inputValue);

  if (catchValue && feetValue) {
      calculateAmounts(catchValue, feetValue);
    }
});

我定义了catchValue&amp; feetValue作为变更函数之外的全局变量。此表单还使用jQuery滑块插件。

Console.log返回正确的值,但我无法获取要更新的实际输入值。

calculateAmounts是一个ajax函数,无论何时更改任何值都需要触发。

现在catchValue&amp;即使feetValue返回正确的值,console.log也会返回false。

我可能错过了一些简单的事情,有谁知道如何解决这个问题?

*每个Nerdwood请求* *

calculateAmounts在下面,但不是问题。它在我针对单个强制更改进行测试时有效。我的问题是输入值没有更新。

function calculateAmounts(catchValue, feetValue) {
  jQuery.ajax({
    type: 'POST',
    url: '/calculateAmounts/ajax',
    dataType: 'json',
    success: ajaxCalcAmountsCompleted,
      data: {
        catchValue:catchValue,
        feetValue:feetValue
      }
    });
}

1 个答案:

答案 0 :(得分:0)

inputValue = $(this).val();
console.log(inputValue);
$(this).val(inputValue);

为什么要将输入值更改为自身?

另外,您说catchValuefeetValue是假的,因此不会调用calculateAmounts

另外,sliderForm.find('#user-form')尝试在自身内找到表单,$(#user-form)就足够了,因为文档中的ID是唯一的

您说您正在尝试更改输入值,但.change是一个在值发生变化时调用的事件。

你的意思是这样吗?

$('#user-form').
    find('.enq-form-input, .enq-form-select, input:hidden').
    each(function() {
        inputValue = $(this).val();

        $(this).val("new text"); //whatever new value for the input

        //do something with inputValue ..

        if (catchValue && feetValue) {
           calculateAmounts(catchValue, feetValue);
        }
    });