javascript - 想要根据选择值动态更改输入值中的“onChange”属性,后缀为
问题描述
我的用户想在我的门户上创建子域,首先他们必须在输入字段中写下他们选择的名称,然后代码检查该名称的可用性。如果只有一个域名,那么它会通过以下代码自动出现。
<input type="text" id="username" name="username" AUTOCOMPLETE=OFF />
<span id="availability_status"></span></div> </p>
<script>/
$("#username").change(function(){
var suffix = ".example.com"
if(this.value.indexOf(suffix) !== 0 ){
this.value = this.value + suffix;
}
});
现在我希望该用户可以从下拉框中的多个域名选择中选择用户名作为子域。例如像
<div>
<label>Domain Name</label>
<select name="s1">
<option value="example.com">example.com</option>
<option value="myexample.org">myexample.org </option>
<option value="myworld.org">myworld.org</option>
</select>
</div>
如果他选择第二个 - 即 myexample.com 并且在输入框中他将写下子域示例的名称----
sports
然后在输入框中它应该改变
sports.myexample.com
那是后缀
.myexample.com
应该在写入输入值后动态出现。
编辑:
假设如果
sports.myexample.com
已经被占用,然后他必须选择另一个域名,例如
.myworld.com
通过下拉,它应该像
sports.myworld.com
我的可用性检查代码如下:
<script type="text/javascript">
$(document).ready(function()//When the dom is ready
{
$("#username").change(function()
{ //if theres a change in the username textbox
var username = $("#username").val();//Get the value in the username textbox
if(username.length > 3)//if the lenght greater than 3 characters
{
$("#availability_status").html('<img src="/loader.gif" align="absmiddle"> Checking availability...');
//Add a loading image in the span id="availability_status"
$.ajax({ //Make the Ajax Request
type: "POST",
url: “ajax-usernameapp.php", //file name
data: "username="+ username, //data
success: function(server_response){
$("#availability_status").ajaxComplete(function(event, request){
if(server_response == '0')//if ajax_check_username.php return value "0"
{
$("#availability_status").html('<img src="appavailable.png" align="absmiddle"> <font color="Green"> Available </font> ');
//add this image to the span with id "availability_status"
}
else if(server_response == '1')//if it returns "1"
{
$("#availability_status").html('<img src="not_available.png" align="absmiddle"> <font color="red">Not Available </font>');
}
});
}
});
}
else
{
$("#availability_status").html('<font color="#cc0000"> not chosen</font>');
//if in case the username is less than or equal 3 characters only
}
return false;
});
});
</script>
解决方案
您只能对选择和输入使用一个事件处理程序,并且每当任何一个发生更改时,获取两个元素的值并将其添加到您的输入框中。
演示代码:
$("#username , select[name=s1]").change(function() {
var suffix = $("[name=s1]").val() //get select value
var user_name = $("#username").val() //get textbox value
if (user_name != "") {
//get value of input before `.`
var actual_name = user_name.split('.')[0]
$("#username").val(actual_name + suffix); //add to input
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="text" id="username" name="username" AUTOCOMPLETE=OFF />
<span id="availability_status"></span>
<div>
<label>Domain Name</label>
<select name="s1">
<option value=".example.com">example.com</option>
<option value=".myexample.org">myexample.org </option>
<option value=".myworld.org">myworld.org</option>
</select>
</div>
推荐阅读
- azure - 如何通过 Azure App 服务引用默认证书来配置 IdentityServer4?
- python - 我希望我的 x 文件夹与 y.png 文件取 z.png 的名称
- spring - 如何检测请求中缺少的原语,而不是在springboot中将实际值默认为0?
- r - 使用 data.frame$column 的 R 函数不起作用
- reactjs - 如何在 reactjs 中获取 Html 文本或元素
- cpanel - 从不同的设备访问 Web 服务器 - ERR_CONNECTION_TIMED_OUT
- javascript - 将数组拆分为动态组
- c# - 如何聚合 IAsyncEnumerable 的结果
- php - Gmail API 限制
- java - 如何在 Java 中显示 \ 和 "?