无法拦截来自jquery的值

时间:2015-05-01 19:08:02

标签: javascript jquery listbox

当列表框选择了文本时,我试图简单地将一些值移动到文本框中。

然后,我试图将所有文本构建到一个链接中。

但是,在使用Chrome或Firefox进行调试时,我的jquery事件在选择列表框时甚至都没有被点击。

有人可以告诉我我做错了什么吗?我以前不认为我有这个问题......

这是我的html:请注意,_guid变量位于名为" PartnerGuid"的值中。在书面的HTML之上......

请注意,列表框值已正确填充。

<fieldset>
        <legend>Link Builder</legend>
        <div class="row">
            <div class="control-group span3">
                <div class="controls">
                    @Html.DropDownListFor(model => model.url, Model.urlOptions, "Select a url...", new { style = "width:180px;" })
                </div>
            </div>
            <div class="control-group span3 offset1">
                <div class="controls">
                    @Html.DropDownListFor(model => model.pbid, Model.pbidOptions, "Select a pbid...", new { style = "width:180px;" })
                </div>
            </div>
            <div class="control-group span3 offset1">
                <div class="controls">
                    @Html.DropDownListFor(model => model.ldid, Model.ldidOptions, "Select a ldid...", new { style = "width:180px;" })
                </div>
            </div>
        </div>
        <div class="row">
            <div class="control-group span3">
                <div class="controls">
                    <table>
                        <tr>
                            <td>
                                <input type="text" id="txturl" />
                            </td>
                            <td>
                                <input type="text" id="txtpbid" />
                            </td>
                            <td>
                                <input type="text" id="txtldid" />
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="control-group span9">
                <div class="controls">
                    <table>
                        <tr>
                            <td>
                                <input type="text" id="txtlink" maxlength="250" />
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
        </div>
        <div class="row">
            <div class="control-group span5 offset1">
                <div class="controls">
                    <button type="button" name="build" value="build" id="build" class="btn btn-success">Build Link</button>
                </div>
            </div>
        </div>
    </fieldset>

这是我的JS

var txturl = $('#url').val($("#url option:selected").text());
        var txtpbid = $("#txtpbid").val($("#pbid option:selected").text());
        var txtldid = $("#txtldid").val($("#ldid option:selected").text());
        var _guid = $("#PartnerGuid").val();

        $('#build').click(function (e) {
            $("#txtlink").val("");
            $("#txtlink").val(txturl + "Routes/?ptid=" + _guid + "&pbid=" + txtpbid + "&ldid=" + txtldid);
            return false;
        });

JS CHANGE:

我将我的JS更改为以下内容,但仍然无法正常工作。它仍然无法工作的原因是因为页面上没有变量(如果你检查我的DropDownListFor模型名称(url,pbid,ldid)没有出现在页面中。

我不知道为什么。

我将MVC与父页面一起使用。 html&amp; js位于Partial(子)页面。

但是,我知道在调试过程中,你必须查看父页面,因为它们都不在子页面中(html或JS)。

我接下来该怎么办????

以下是相关的更新JS:

<div class="row">
            <div class="control-group span3">
                <div class="controls">
                    @Html.DropDownListFor(model => model.url, Model.urlOptions, "Select a url...", new { style = "width:180px;" })
                </div>
            </div>
            <div class="control-group span3 offset1">
                <div class="controls">
                    @Html.DropDownListFor(model => model.pbid, Model.pbidOptions, "Select a pbid...", new { style = "width:180px;" })
                </div>
            </div>
            <div class="control-group span3 offset1">
                <div class="controls">
                    @Html.DropDownListFor(model => model.ldid, Model.ldidOptions, "Select a ldid...", new { style = "width:180px;" })
                </div>
            </div>
        </div>

1 个答案:

答案 0 :(得分:0)

您可以使用jquery .change()函数来实现所需的结果。请看以下示例:

SELECT RESOURCE_NAME, REPLACE(EMAIL_ADDRESS, ' ', '')
FROM [RESOURCE]
WHERE 
    (@Name IS NULL OR (RESOURCE_NAME LIKE @Name))

这是jsfiddle示例https://jsfiddle.net/94Lx50at/

的链接