使用jquery的多个文本区域值



我正试图使用jQuery从html中获取数组的值,然后将其传递给PHP脚本。我在这个网站上尝试了很多变体,但都没有成功。

这就是我到目前为止所拥有的。(我使用jQuery根据所需的数量生成文本区域,最多10个)。

<form>
<input type='text' value='Title', name='title' id='title' /><br>
<h2 class="achievements" id="subheading">Required Amount</h2><br><br><br>
<select id="selection">
<option value='0'>0</option>
<option value='1'>1</option>
<option value='2'>2</option>
<option value='3'>3</option>
<option value='4'>4</option>
<option value='5'>5</option>
<option value='6'>6</option>
<option value='7'>7</option>
<option value='8'>8</option>
<option value='9'>9</option>
<option value='10'>10</option>
</select>
<div class="achievements" id="board"></div>
</form>
</div>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('#selection').change(function() {
    var required = parseInt($(this).val());
    var i = 0;
    var str1 = "<h2 id="subheading">Requirements</h2><br><br><br>";
    for( i = 0; i < required; i++) {
                str1 += "<br><br><label></label><textarea name='requirement["+ i +"]' class="requirements" rows='2' cols='40'></textarea>";
            }
    str1 += "<br><input type='button' class='button' onclick="button('achievements/create_achievement');" value='Add Achievement'/>";
    $('#board').html(str1); 
});
return false;
});
</script>

获取数据的jQuery脚本是:

function button(uri) {
var url = "http://www.blahblah.com/" + uri;
    var requirements = [];
    /**
      * solution below found on SO does not work as thought
      */
    /////////////////////////////////////////////////////////////////////////
    requirements = $('textarea[name^="requirement\[\]"]').map(function() {
    return $(this).val();
    }).get();
    //////////////////////////////////////////////////////////////////////// 
    $.ajax({
    url: url,
    data: {id:requirements},
    type: "POST",
    success: function(data) {
        $('#main-board').html(data);
    }
    });
return false;
} 

我的问题是,当使用alert(requirements)检查数据数组时,什么也找不到。我认为这是因为html中的数据没有使用我使用的jQuery语句正确解析。任何帮助都将是伟大的。感谢

文本区域的选择器错误,因为文本区域的名称在括号中有一个小数;另请参阅^=:的jquery选择器页面

描述:选择具有指定属性的元素,其值以给定字符串正好开头。

更换

$('textarea[name^="requirement\[\]"]')

带有

$('textarea[name^="requirement\["]')

你不必再改变了。

另请参阅此示例。

最新更新