Javascript 如何更改输入的值?
我有一个表单,其中动态添加了输入、文本和选择元素 表单的ID是Javascript 如何更改输入的值?,javascript,jquery,Javascript,Jquery,我有一个表单,其中动态添加了输入、文本和选择元素 表单的ID是#用户表单,我需要更改此表单中出现的输入/选择/文本元素的值 其中一个表单项在页面加载时隐藏,这就是为什么我在选择中包含input:hidden 一个元素的HTML输出示例如下所示: <input id="slider-coll" class="enq-form-input form-text" type="text" maxlength="128" size="10" value="" name="slider_coll"&g
#用户表单
,我需要更改此表单中出现的输入/选择/文本
元素的值
其中一个表单项在页面加载时隐藏,这就是为什么我在选择中包含input:hidden
一个元素的HTML输出示例如下所示:
<input id="slider-coll" class="enq-form-input form-text" type="text" maxlength="128" size="10" value="" name="slider_coll">
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
和feetValue
定义为change函数之外的全局变量。此表单还使用jQuery滑块插件
Console.log
返回正确的值,但我无法获取要更新的实际输入值
calculateAmounts
是一个ajax函数,需要在任何值发生更改时启动
现在catchValue
和feetValue
返回false,即使console.log
返回正确的值
我可能错过了一些简单的东西,有人知道怎么解决吗
*根据Nerdwood请求**
calculateAmounts
如下所示,但这不是问题所在。当我用一个强制改变来测试它时,它就工作了。我的问题是输入值没有更新
function calculateAmounts(catchValue, feetValue) {
jQuery.ajax({
type: 'POST',
url: '/calculateAmounts/ajax',
dataType: 'json',
success: ajaxCalcAmountsCompleted,
data: {
catchValue:catchValue,
feetValue:feetValue
}
});
}
为什么要将输入值更改为自身
另外,您说过catchValue
和feetValue
为false,因此不会调用calculateAmounts
另外,slidePerform.find(“#用户表单”)
尝试在表单本身中查找表单,$(#用户表单)
就足够了,因为文档中的id是唯一的
您说您正在尝试更改输入的值,但。更改是在值更改时调用的事件
你是说这样的事吗
$('#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);
}
});
您的代码不会将您为输入设置的任何内容更新为它已经包含的相同值。请显示calculateAmounts()
函数的内容。Uby-我认为您的路径是正确的。这可能是我愚蠢的计划。我首先创建变量catchValue和feetValue作为change函数之外的全局变量。我不会在change函数中将变量的值更改为新的值。我认为主要问题是我缺乏理解。每次输入字段的值发生变化时,我都需要调用ajax函数,该函数接受两个参数,每个参数都应该保存变化后的值。我认为这必须使用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);
}
});