当我在我的标题中使用此功能时,它工作正常但是当我在小部件中使用它时没有任何事情发生
$("#myID").click(function(){
var name = $("#name").val();
var phone = $("#phone").val();
console.log(name +" "+ phone);
if(name.length > 1 && phone.length > 7){
$.ajax({
url: 'my_url',
type: 'post',
data: {'name': name,
'number': phone},
success: function(data){
$(".header-bg-title").html('thanks');
$("span.white").hide();
},
error: function(response){
alert('error');
}
});
} else {
$("p#onerror").html('write your name & number');
}
});
HTML
<div class="col-xs-12">
<h2>text</h2>
<p id="onerror">My text</p>
<p><input id="name" class="form-control" type="text" placeholder="Name" /></p>
<p><input id="phone" class="form-control" type="text" placeholder="Phone" /></p>
<p><button id="myID" class="btn btn-warning btn-block btn-lg" type="button">Send</button></p>
</div>
有人提出建议吗?
答案 0 :(得分:1)
据我所知.click会在执行时附加到项目上,如果项目不在那里,在小部件的情况下它将不会被附加。我可能错了,试一下,看看它是否有效。
$('body').on('click', '#myID', function() {
...
});
答案 1 :(得分:0)
尝试使用jQuery函数,而不是$。
您的代码将是:
jQuery("#myID").click(function(){
var name = jQuery("#name").val();
var phone = jQuery("#phone").val();
console.log(name +" "+ phone);
if(name.length > 1 && phone.length > 7){
jQuery.ajax({
url: 'my_url',
type: 'post',
data: {'name': name,
'number': phone},
success: function(data){
jQuery(".header-bg-title").html('thanks');
jQuery("span.white").hide();
},
error: function(response){
alert('error');
}
});
} else {
jQuery("p#onerror").html('write your name & number');
}
});
或者您可以将代码包装在IIFE中,在$
中接收jQuery(function($) {
// your code here
}(jQuery));
答案 2 :(得分:0)
我猜你现在有这样的功能
$(document)ready(function(){
$("#myID").click(function(){
var name = $("#name").val();
var phone = $("#phone").val();
console.log(name +" "+ phone);
if(name.length > 1 && phone.length > 7){
$.ajax({
url: 'my_url',
type: 'post',
data: {'name': name,
'number': phone},
success: function(data){
$(".header-bg-title").html('thanks');
$("span.white").hide();
},
error: function(response){
alert('error');
}
});
} else {
$("p#onerror").html('write your name & number');
}
});
}
如果是这样,它应该像更改$(document)ready(function(){到jQuery(document).ready(function($)并保持其余部分一样简单)。
jQuery(document).ready(function($)
{
$("#myID").click(function(){
var name = $("#name").val();
var phone = $("#phone").val();
console.log(name +" "+ phone);
if(name.length > 1 && phone.length > 7){
$.ajax({
url: 'my_url',
type: 'post',
data: {'name': name,
'number': phone},
success: function(data){
$(".header-bg-title").html('thanks');
$("span.white").hide();
},
error: function(response){
alert('error');
}
});
} else {
$("p#onerror").html('write your name & number');
}
});
}
此解决方案允许您继续使用$(&#39;#idofitem&#39;)