有一个问题。我有cognitoUser = getCognitoUser(req);
cognitoUser.refreshSession(RefreshToken, (err, session) => {
if (err) throw err;
//get token code
});
getCognitoUser = function(req) {
const poolData = {
UserPoolId : COGNITO_USER_POOL_ID,
ClientId : COGNITO_CLIENT_ID
};
const userPool = new CognitoUserPool(poolData);
const userData = {
Username : req.user.email,
Pool : userPool
};
return new CognitoUser(userData);
};
,并且如果字段为空,不要在帖子中显示输入的名称,以便发布得更干净。但是不知道如何。
.serialize()
<form id="profile-form" method="post">
<div class="form-group">
<input name="Profile-twitter" type="text" id="inputTwitter" placeholder="Twitter Link">
<input name="Profile-youTube" type="text" id="inputYouTube" placeholder="YouTube Link">
</div>
<button type="submit" id="Profile-submit">Profil aktualisieren</button>
</form>
答案 0 :(得分:1)
更常见的解决方法是在表单的serilizeArray()
上使用filter()方法,
无论您使用serialize()
还是serilizeArray()
都没什么区别,两种情况下您都会得到相同的 post变量,在这里我们使用{{ 1}}。
@sivaprasad的答案仅适用于输入(我知道提问者也只希望输入解决方案),
,但是您可以使用serilizeArray()
的内置函数 {{1 }}。
有关更简单的解决方案,请参见下文,该解决方案也适用于所有表单元素(输入,文本区域,复选框,单选按钮等):
javascript
filter()
//JAVASCRIPT or <script> tag
$("form").on("submit", function (event) {
event.preventDefault();
let filteredArray = $('#profile-form').serializeArray().filter(function (k) {
return $.trim(k.value);
});
console.log(filteredArray);
});
简短而醒目的 javascript(ES6)箭头功能,用于过滤serializeArray():
/*** CSS ***/
.form-group {
margin-bottom: 15px;
}
label {
display: block;
max-width: 100%;
margin-bottom: 5px;
font-weight: 700;
}
答案 1 :(得分:0)
尝试一下
$( "form" ).on( "submit", function( event ) {
event.preventDefault();
var flag = false;
//if($("#inputTwitter").val() != "" && $("#inputYouTube").val() != "")
$(this).find(">div>input").each(function(index, el){
if ($(el).val().length == 0)
flag = true;
});
if( !flag )
console.log( $( this ).serialize() );
});