在代码中设置输入文本的值

时间:2016-03-10 05:35:29

标签: javascript jquery meteor

当在模板助手中调用函数restoreFromSerialize时,此代码尝试设置输入文本框的值。
它不会在输入文本框中插入elementValue,即使在console.log(elementName+" "+elementValue);被触发时已在浏览器控制台中验证了它的值。感谢

function restoreFromSerialize() {
  formValues.split('&').forEach(function (doc) {
    var elementName = doc.split('=')[0];
    var elementValue = doc.split('=')[1];
    if($('[name=elmentName]').attr('type') == 'radio') {
      $('[name=elementName]').prop('checked', true);
    } else {
      console.log(elementName+" "+elementValue);
      $('[name=elementName]').val(elementValue); //<<<<< NOT WORKING
    }
  })
}

1 个答案:

答案 0 :(得分:2)

重新分解整个代码:

function restoreFromSerialize(formValues) {
  formValues.split('&').forEach(function (doc) {
    var splited = doc.split('=');
    var elementName  = splited[0];
    var elementValue = splited[1];
    if($('[name="'+elementName+'"]').is(':radio')) {
      $('[name="'+elementName+'"]').prop('checked', true);
    } else {
      console.log(elementName+" "+elementValue);
      $('[name="'+elementName+'"]').val(elementValue); //<<<<< NOT WORKING
    }
  });
}

您的代码无效的原因是,您需要在选择器中传递变量而不是字符串文字。