PHP $ _POST无法读取jQuery val()设置的值

时间:2016-04-13 16:49:37

标签: javascript php jquery

我创建了一个小脚本,允许用户从其他输入中隐藏一些输入值。 JavaScript部分工作正常,但是现在当我尝试发送表单时,它没有发送它,说该值被复制到的字段是空的。这里的问题是什么?谢谢!

$(document).ready(function() 
{
    $(":text").blur(function() 
    {
        var input = $(this);
        var id = input.attr("id");
        var fieldname = "#".concat(id);

        for (i = 0; i < fields.length; i++)
        {
            if (fields[i][4] == id)
            {
                var boxname = "#copy_".concat(fields[i][0]);
                if ($(boxname).prop("checked"))
                {
                    var fieldname2 = "#".concat(fields[i][0]);
                    $(fieldname2).val($(fieldname).val());
                }
            }
        }
    });

    $(":checkbox").change(function()
    {
        var input = $(this);
        var id = input.attr("id");
        id = id.substring(id.indexOf("_") + 1, id.length);
        var fieldname = "#".concat(id);

        var checked = input.prop("checked");
        $(fieldname).prop("disabled", checked);

        var field = FindField(0, fields[FindField(0, id)][4]);

        if (checked)
        {
            var fieldname2 = "#".concat(fields[field][0]);
            $(fieldname).val($(fieldname2).val());
        }
    });
});

function FindField(index, value)
{
    for (i = 0; i < fields.length; i++)
    {
        if (fields[i][index] == value) return i;    
    }
    return -1;
}

表格(没有一些不相关的东西):

<form method="post" action="sendform.php">
    <table>

        <?php
            foreach ($fields as $field)
            {
                if ($field[0] == "divider") echo('<tr><td colspan="2"><hr /></td></tr>');
                else 
                {   
                    switch ($field[2])
                    {
                        case FIELD_TEXT:
                        {
                            echo('<tr><td><label for="' . $field[0] . '">' . $field[1] . ': </label></td><td>');

                            if ($field[4] != "") 
                            {
                                foreach ($fields as $field2)
                                {
                                    if ($field2[0] == $field[4])
                                    {
                                        echo('<input type="checkbox" id="copy_' . $field[0] . '" title="Kopeeri väljalt &quot;' . $field2[1] . '&quot;" />');
                                    }
                                }
                            }

                            echo('<input type="text" id="' . $field[0] . '" name="' . $field[0] . '" placeholder="' . $field[1] . '" /></td></tr>');

                            break;
                        }
                    }
                }
            }
        ?>

        <tr><td colspan="2"><hr /></td></tr>
        <tr>
            <td colspan="2" style="text-align: center;">
                <input type="submit" value="Saada avaldus" name="saadaavaldus" />
            </td>
        </tr>

    </table>
</form>

字段数组的示例:

var fields = <?php echo json_encode($fields); ?>

$fields = array
(
    //      ID/name         label/placeholder                       type            regex                                                          field copied from
    array(  "saatjanimi",   "Teie täisnimi",                        FIELD_TEXT,     "^[-,.'\s\pL]*\pL[-,.'\s\pL]\s+[-,.'\s\pL]*\pL[-,.'\s\pL]*$",   ""),
    array(  "meiliaadress", "Teie meiliaadress",                    FIELD_TEXT,     "^([\pL-.\d]+)@([\pL-.\d]+)((\.(\pL){2,63})+)$",                ""),
    array(  "isanimi",      "Lapse isa täisnimi",                   FIELD_TEXT,     "^[-,.'\s\pL]*\pL[-,.'\s\pL]\s+[-,.'\s\pL]*\pL[-,.'\s\pL]*$",   "saatjanimi")
);

0 个答案:

没有答案