Я пытаюсь создать простой, чтобы заменить ключевые слова в документе, но я борюсь с основным вводом.
По сути, я использовал функцию jQuery ajax, чтобы вытащить содержимое электронной таблицы Google, которую я тогда хочу использовать в качестве источника для ключевых слов для изменения.
Затем я попытался подключить HTML до jquery, чтобы кто-то мог вставить какой-либо текст, на котором нужно выполнить эту работу.
Проблема в том, что как только я вставлю какую-то копию, а затем нажмите кнопку "Отправить", она появится кратко, а затем сбрасывается HTML. Может ли кто-нибудь помочь мне разобраться в том, что я сделал неправильно, пожалуйста?
Код можно найти здесь: http://jsbin.com/IMIwabe/1/edit?html,console,output
<title>Test Form</title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7/jquery.min.js"></script>
<style>
#results_box {
border: red 5px solid;
}
#place {
border: #cccccc 1px solid;
}
</style>
<script type="text/javascript">
$(document).ready(function() {
var json_source = "https://spreadsheets.google.com/feeds/list/0ApL1zT2P00q5dG1wOUMzSlNVV3VRV2pwQ2Fnbmt3M0E/od7/public/basic?alt=json";
var json_data = $.ajax({
dataType: 'jsonp',
url: json_source,
success: function(data){
//for (i=0; i<data.feed.entry.length; i++){
// $('#results_box').append(data.feed.entry[i].title['$t']);
//}
json_data = data.feed.entry;
return json_data;
},
error: function(jqXHR, textStatus, errorThrown){
$('#results_box').html('<h2>Something went wrong!</h2><p><b>' + textStatus + '</b> ' + errorThrown + '</p>');
}
});
$(':submit').click(function(){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
}
});
});//document ready end
</script>
</head>
<body>
<div id="wrapper">
<div id="query_box" class="panel">
<form id="form_submit"><h4>Copy to process:</h4>
<textarea id="place"></textarea>
<input type="submit" value="Go" />
</form>
</div>
<div id="results_box" >Results will appear here</div>
</div>
</body>
</html>
Вы должны вернуть false из своей подачи, чтобы предотвратить отправку от фактического обстрела. Событие кликов запускается, но затем форма отправляется, сбрасывая страницу.
$(':submit').click(function(){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
}
return false;
});
Вы также можете использовать preventDefault
но return false делает то же самое.
Вы должны предотвратить дефолт в своем клик-событии, потому что кнопка GO - это кнопка отправки, и она попытается отправить всю форму:
$(':submit').click(function(event){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
event.preventDefault();
}
});
Попробуй это
$('#te').click(function(){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
}
});
});//document ready end
</script>
</head>
<body>
<div id="wrapper">
<div id="query_box" class="panel">
<form ><h4>Copy to process:</h4>
<textarea id="place"></textarea>
<input id="te" type="button" value="Go" />
</form>
</div>
<div id="results_box" >Results will appear here</div>
</div>
+ Изменить
$(':submit').click(function(){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
}
});
К чему-то подобному
<input type="submit" value="Go" onclick = "convertTextBox(); return false;"/>
И в ваших js:
function convertTextBox(){
//function convert text box postcode into lat long
if ($('#place').val() !=''){
var copy_string = $('#place').val();
$('#results_box').html(copy_string);
}
});
См. Return false после вызова функции convertTextBox()
, что предотвращает convertTextBox()
вашей формы, перезагружая веб-страницу с помощью параметров формы.