0

这里是相当新的 JS/JQuery 程序员,所以请原谅任何疏忽/措辞不佳的文本。同样,即使没有特别要求,我们也会感谢所有反馈。

我有几个由 SQL 表中的数据动态填充的下拉列表。我有一个设置,如果用户选择“其他”,则 DDL 下方会出现一个文本字段,以允许输入自定义值。这些自定义值应该添加到数据库中,以便它们显示在 DDL 中。由于页面上有很多这些 DDL,我希望数据库更新和 DDL 更新立即发生(在用户单击时),而不是在填写整个页面并在页面提交时执行(这也使得更容易调试,因为有很多必填字段)。

所以到目前为止我的代码如下所示:

<label for="IDIQs">Associated IDIQ/BPA:</label>
<select id="IDIQs" required>
</select>
<br>

<div id="IDIQs_other_div" class="other_field">
<label for="IDIQs_other">Other IDIQ/BPA:</label><br><input type="text"      name="IDIQs_other" id="IDIQs_other" size="50" required/><br>
<input type="submit" value="Add Contract Vehicle Type to Database" name="IDIQs_other_submit"  onClick='updateDB("IDIQs");'> 
</div>

这显然不起作用,因为这种输入类型被浏览器解释为意味着它是整个表单的提交按钮。

实现这一目标的最简单/最佳实践方法是什么?

请注意,“很高兴拥有”功能是让新输入的值成为 DDL 中的选定值,一旦一切都说完了。

我在此页面中使用 JQuery 以及常规 JavaScript。

4

4 回答 4

1

您可以使用一个<input type="button" />或一个锚点,使其看起来像一个按钮或任何东西。

于 2013-09-03T13:28:44.517 回答
0

我建议使用按钮,而不是提交

<input type="button" value="Add Contract Vehicle Type to Database" name="IDIQs_other_submit"  onClick='updateDB("IDIQs");'> 

始终当您单击此按钮时,ajax将调用函数

于 2013-09-03T13:30:38.847 回答
0

使用onjQuery中的函数来触发ajax。

$('.yourElement').on('click', function(e) {
    // Your Ajax code
});
于 2013-09-03T13:30:56.300 回答
0

你可以这样做:

1) 在要即时提交的 html 标签上添加一个类

2)我们将提交用户在其他地方关注时输入的内容(模糊事件)

$('.class').blur(function(){

    var $this = $(this);
    var val = $.thrim($this.val());

    if ($.thrim($this.val()) !== '') { // we dont want to submit blanks for no reason
        var request = $.ajax({
          url: "script.php",    // path of your php script
          type: "POST", 
          data: {key : val},
          dataType: "json"
        });

        request.done = function(reply) { // success get a reply maybe from server
            console.log(reply)
        }

        request.fail = function(err) {  some error occured
            console.log(err)
        }

    }

})
于 2013-09-03T13:37:06.590 回答