没有获得名称属性

时间:2016-03-20 11:59:41

标签: javascript jquery

我没有从名称属性获得价值。我做错了什么?

例如

$(function() {
    $("#orderForm").submit(function(e){
        e.preventDefault();
        var statusName = $(this).attr('input[name="name"]').val();
        var statusDesc = $(this).attr('input[name="description"]').val();
        alert(statusName);
    });
});

HTML代码:

<form id='orderForm'>
   <input type="text" name="name">
  <textarea name="description"></textarea>
 <button type="Submit">Add</button>
</form>

3 个答案:

答案 0 :(得分:4)

您正在搜索attribute equals selector

$("#orderForm").submit(function(e){
  e.preventDefault();
  var statusName = $('input[name="name"]', this).val();
  var statusDesc = $('textarea[name="description"]', this).val();
  alert(statusName);
});

这里我使用了$("selector", context)版本,所以匹配选择器的元素将在上下文中搜索而不是它。它与$(context).find("selector")

非常相似

答案 1 :(得分:0)

jQuery attr函数获取属性的值,而不是文本输入的值。

您应该使用children()获取orderForm模块的用户输入值。我用正确的代码准备了Js Bin

答案 2 :(得分:0)

试试这个,

$(function() {
  $("#orderForm").submit(function(e) {
    e.preventDefault();
    var statusName = $(this).find('input[name="name"]').val();
    var statusDesc = $(this).find('*[name="description"]').val();
// or var statusDesc = $(this).find('textarea[name="description"]').val();
    alert(statusDesc);
  });
});

我建议您在处理表单

时为每个字段分配ID