0

我有一个带有几个文本框的表单。

第一个输入框是“企业名称”。还有几个包含各种信息的框,最后一个框是“URL”,我在其中输入我希望该企业在我的数据库中拥有的 url。我希望它采用标题输入框的值,而不是手动输入此 url,并将空格替换为“-”并将其全部设为小写。我还想为网址添加前缀。

因此,如果我输入“Bobs Hotel”,那么一旦我输入完 URL 框,就会预先填充“business/bobs-hotel”。如果我输入“Mikes Hot Dogs”,它将是“business/mikes-hot-dogs”等,然后我就可以提交表格了。

编辑:我忘记了一个重要的细节:“商业”这个词实际上不会被使用。要使用的词来自下拉选择框。此框有 3-4 个选项名称(不是值)、“酒店”、“餐厅”等。因此,如果您从下拉列表中选择“酒店”,则 URL 将为“酒店/酒店名称”

一件重要的事情是,尽管您从下拉列表中选择了“酒店”,但酒店的是一个数字,例如 5 或其他任何值(因为它对应于数据库中的类别 ID)

我该怎么做?

4

3 回答 3

2

使用 jQuery 试试这个

​</p>

Business Name : <input type="text" id="business" name="bussiness"​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​​ /></br>

<label class="url" ></label>

$(function() {

    $('#business').on('change', function() {

        var val = $(this).val().replace(' ', '-').toLowerCase();;
        $('.url').text(this.id + '/' + val)
    });
});​

检查演示

于 2012-10-27T21:45:36.757 回答
2

鉴于您的输入具有 idnameurl,您可以使用 jQuery 执行以下操作:

$("#name").on("focusout", function () {
    var business = $("#business").val();
   $("#url").val(business + "/" + $(this).val().toLowerCase().replace(" ", "-"));
});

演示

更新:

更新了示例以从下拉列表中获取业务值。请参阅更新的演示。

更新 2:

要获取所选选项的内容而不是值,您可以这样做:

$("#name").on("focusout", function () {
    var business = $("option:selected", "#business").text();
   $("#url").val(business + "/" + $(this).val().toLowerCase().replace(" ", "-"));
});

现在我们在 id 的元素中获取选定的选项元素,并使用该方法business读取其内容。.text()

演示

于 2012-10-27T21:45:52.183 回答
1

快速replace使用正则表达式并toLowerCase会处理这个问题。

var business_name = $('#business-name').value;
var dashified = business_name.trim().replace(/\s/g,'-').toLowerCase();
var url = 'business/' + dashified;
$('#url-field').value(url);

的第一个参数replace可以是正则表达式。这个会找到所有的空白。第二个参数是您要替换的参数,在本例中为破折号。

于 2012-10-27T21:45:19.560 回答