Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery未传递SELECT表单参数_Javascript_Jquery - Fatal编程技术网

Javascript JQuery未传递SELECT表单参数

Javascript JQuery未传递SELECT表单参数,javascript,jquery,Javascript,Jquery,我有一个非常基本的任务,就是从SELECT表单元素传递一个选定的值,但它只传递SELECT语句的第一个选项,而不是实际的选定选项 以下是表单选择部分: <p>Grade Level: <select id="gradeLevel"> <option value="">Please select...</option> <option value="primary">

我有一个非常基本的任务,就是从SELECT表单元素传递一个选定的值,但它只传递SELECT语句的第一个选项,而不是实际的选定选项

以下是表单选择部分:

    <p>Grade Level:
        <select id="gradeLevel">
            <option value="">Please select...</option>
            <option value="primary">Primary</option>
            <option value="levelk">Level K</option>
            <option value="level1">Level 1</option>
            <option value="level2">Level 2</option>
            <option value="level3">Level 3</option>
            <option value="level4">Level 4</option>
            <option value="level5">Level 5</option>
            <option value="level6">Level 6</option>
            <option value="level7">Level 7</option>
            <option value="level8">Level 8</option>
        </select>
    </p>
    <p>Test:
        <select id="dropTest">
            <option value="1">One</option>
            <option value="2">Two</option>
            <option value="3">Three</option>
        </select>
    </p>
现在有趣的部分。。。如果我在控制台中键入JQuery命令$gradeLevel.val或$dropTest option:selected.val,它会提取正确的选定值

我完全迷路了。。。不知何故,正在提取正确的值,但传递的参数不正确?

您将在文档上获得$gradeLevel.val

在那一刻,您在[select]和[select]中都选择了第一个选项,对吗


您应该在选择正确的选项后获得值。

问题是$gradeLevel.val和$dropTest option:selected.val的值在脚本执行时被解析,因此它们总是设置为第一个默认元素。更改其他项目不会影响它们,因为它们已设置

根据,你应该这样做:

$(function() {
    $('#file_upload').uploadifive({
        'auto'             : true,
        'checkScript'      : 'check-exists.php',
        'onUploadStart'    : function(file) {
            // set formData here.
            $('#file_upload').uploadifive('settings', 'formData', {
                'timestamp' : '<?php echo $timestamp;?>',
                'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
                'first'     : $("#firstName").val(),
                'last'      : $("#lastName").val(),
                'level'     : $("#gradeLevel").val(),
                'drop'      : $("#dropTest option:selected").val()
            });
        },
        'queueID'          : 'queue',
        'uploadScript'     : 'uploadifive.php',
        'onUploadComplete' : function(file, data) { console.log(data) }
    });
});
相关问题:

使用

$("#dropTest").val()
。。。或者

$("#dropTest option:selected").text()
这将首先为您提供所选的关联选项值。第二个选项将为您提供选项的文本

参考资料:

试试这个:

$("button").on("click", function()
{
        $('#file_upload').uploadifive({
            'auto'             : true,
            'checkScript'      : 'check-exists.php',
            'formData'         : {
                                   'timestamp' : '<?php echo $timestamp;?>',
                                   'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
                                   'first'     : $("#firstName").val(),
                                   'last'      : $("#lastName").val(),
                                   'level'     : $("#gradeLevel").val(),
                                   'drop'      : $("#dropTest option:selected").val()
                                 },
            'queueID'          : 'queue',
            'uploadScript'     : 'uploadifive.php',
            'onUploadComplete' : function(file, data) { console.log(data) }
        });
    });
});

基本上,这将允许javascript在DOM加载后执行

是否有一个特定的事件,这是应该发生的?i、 e.单击按钮或选择项目更改?否,用户在表单中输入信息,然后选择要上载的文件。。。上载将触发该事件。我只需要上传所有表单数据就可以为上传的文件创建目录结构。这是我制作的一个屏幕记录,您可以看到实际的过程,以及我遇到的情况:这可能适用于Uploadify集合,但不适用于UploadFive。uploadStart事件不是一个选项。我在onUpload和onUploadFile事件中尝试了一种变体,但没有成功。我在选择选项中选择了不同的值,但它只传递第一个选项值,而不传递选定的值。使用Chrome中的开发工具,我可以键入$'gradeLevel'.val或$'dropText option:selected.val并获取所选值,但由于某些原因,它们无法通过,这只是第一个选项。我建议您添加一个发送按钮,并在单击时绑定事件。。否则,如果有人先上传图片,然后尝试完成数据,他们将无法完成,或者无法在之后发送表单。。这也可以解决你的小问题。不幸的是,他们没有点击按钮,一旦他们选择一个或多个文件,它就会自动上传。只需输入一次学生信息即可,因此对于事件更改来说,更改表单是不可行的。
$("#dropTest option:selected").text()
$("button").on("click", function()
{
        $('#file_upload').uploadifive({
            'auto'             : true,
            'checkScript'      : 'check-exists.php',
            'formData'         : {
                                   'timestamp' : '<?php echo $timestamp;?>',
                                   'token'     : '<?php echo md5('unique_salt' . $timestamp);?>',
                                   'first'     : $("#firstName").val(),
                                   'last'      : $("#lastName").val(),
                                   'level'     : $("#gradeLevel").val(),
                                   'drop'      : $("#dropTest option:selected").val()
                                 },
            'queueID'          : 'queue',
            'uploadScript'     : 'uploadifive.php',
            'onUploadComplete' : function(file, data) { console.log(data) }
        });
    });
});
$("select").on("change", function()
{
  //Your code here
}