【问题标题】:Getting the value of a prepopulated field获取预填充字段的值
【发布时间】:2011-10-25 18:33:27
【问题描述】:

如果日期已经填充,我如何获取字段#id_start_date 的值?

我试过了:

var sd = $("#id_start_date").val();
$("span.start_date").text(sd);

还尝试将其放入 .change() 或 .click() 中,但由于它是由程序更改而不是手动更改,因此无法正常工作。

编辑

这是我的 html 的表单部分。

....
<tr>
    <th>Start date</th>
    <td><input id="id_start_date" type="text" class="datepicker date_field" name="start_date" size="14" /></td>
</tr>
....

有什么想法或建议吗?

史蒂夫

【问题讨论】:

  • 你也可以显示html部分吗?
  • 不是模板代码——浏览器收到的实际 HTML。

标签: javascript jquery django-forms


【解决方案1】:

如果该日期在span 中,那么您应该可以这样做

$("#id_start_date span.start_date").text();

看看你刚刚发布的html,你可以这样做

$('#id_start_date').val();

【讨论】:

  • 日期不在范围内。我将值分配给该跨度
  • 正确。我真正的问题是让 .change() 触发。当它自动填充时,它不会触发更改。除非我事后手动更改它
  • 它由我的费率表填充,他们点击费率并将所有数据输入表单。然后它获取当前日期并将其放在日期字段中。
【解决方案2】:

如果是input text,您的代码将起作用:

var sd = $("#id_start_date").val();

但如果是文本(字符串字段)

你必须使用:

var sd = $("#id_start_date").text();

【讨论】:

  • 我没有得到 start_date 的值
  • 好吧,如果你在input 中放了一些东西,你的代码就可以工作,但是如果是数据库结果或其他任何东西,你需要在你的回调中设置代码,当输入将是具有一定的价值。这一切都取决于你什么时候触发这个事件。
【解决方案3】:

我发现了我的问题,我想我会在这里发布,以防其他人遇到类似问题。

有一个 AJAX 调用,其中包含 start_date,所以我将代码放在 AJAX 调用中,它可以工作。

$.ajax({
        type: "POST",
        url: "{% url whatever %}",
        dataType: "json",
        data: q,
        success: function(json) {
            $("#id_maturity_date").val(json.maturity_date);
            var mat = $("#id_maturity_date").val();
            $("span.mat_date").text(mat);

            $("#id_start_date").val(json.start_date);
            var sd = $("#id_start_date").val();
            $("span.start_date").text(sd);

            $("#id_term_years").val(json.term_years);
            $("#id_term_months").val(json.term_months);
            ...
        }
    });

由于某种原因,.change() 在以这种方式填充时不会触发,因此除非我进入 AJAX 调用,否则我永远无法获得该值。

感谢大家的意见。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-24
    相关资源
    最近更新 更多